IBM Support

PM68797: Deadlock in JSMessageData.lazyCopy()

Fixes are available

7.0.0.27: WebSphere Application Server V7.0 Fix Pack 27
8.5.0.2: WebSphere Application Server V8.5 Fix Pack 2
8.0.0.6: WebSphere Application Server V8.0 Fix Pack 6
7.0.0.29: WebSphere Application Server V7.0 Fix Pack 29
8.0.0.7: WebSphere Application Server V8.0 Fix Pack 7
8.0.0.8: WebSphere Application Server V8.0 Fix Pack 8
7.0.0.31: WebSphere Application Server V7.0 Fix Pack 31
7.0.0.27: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.33: WebSphere Application Server V7.0 Fix Pack 33
8.0.0.9: WebSphere Application Server V8.0 Fix Pack 9
7.0.0.35: WebSphere Application Server V7.0 Fix Pack 35
8.0.0.10: WebSphere Application Server V8.0 Fix Pack 10
7.0.0.37: WebSphere Application Server V7.0 Fix Pack 37
8.0.0.11: WebSphere Application Server V8.0 Fix Pack 11
7.0.0.39: WebSphere Application Server V7.0 Fix Pack 39
8.0.0.12: WebSphere Application Server V8.0 Fix Pack 12
7.0.0.41: WebSphere Application Server V7.0 Fix Pack 41
8.0.0.13: WebSphere Application Server V8.0 Fix Pack 13
7.0.0.43: WebSphere Application Server V7.0 Fix Pack 43
8.0.0.14: WebSphere Application Server V8.0 Fix Pack 14
7.0.0.45: WebSphere Application Server V7.0 Fix Pack 45
8.0.0.15: WebSphere Application Server V8.0 Fix Pack 15
7.0.0.27: Java SDK 1.6 SR12 Cumulative Fix for WebSphere Application Server
7.0.0.29: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.45: Java SDK 1.6 SR16 FP60 Cumulative Fix for WebSphere Application Server
7.0.0.31: Java SDK 1.6 SR15 Cumulative Fix for WebSphere Application Server
7.0.0.35: Java SDK 1.6 SR16 FP1 Cumulative Fix for WebSphere Application Server
7.0.0.37: Java SDK 1.6 SR16 FP3 Cumulative Fix for WebSphere Application Server
7.0.0.39: Java SDK 1.6 SR16 FP7 Cumulative Fix for WebSphere Application Server
7.0.0.41: Java SDK 1.6 SR16 FP20 Cumulative Fix for WebSphere Application Server
7.0.0.43: Java SDK 1.6 SR16 FP41 Cumulative Fix for WebSphere Application Server

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • A dead lock can occur from within the MFP layer of SIB
    JSMessageData.lazyCopy.
    .
    
    Javacore Output:
    .
    1LKDEADLOCK    Deadlock detected !!!
    NULL           ---------------------
    NULL
    Thread "JS-ReceiveListenerDispatcher:4292"(0x000000001D75ED00)
    is waiting for:
    sys_mon_t:0x0000004A84837600 infl_mon_t: 0x0000004A84837670:
    com/ibm/ws/sib/mfp/jmf/impl/JSMessageImpl@0x00000000B92E9108/
    0x00000000B92E9114:
    which is owned by:
    Thread "Consumer cl_appIS1P_prod.000-SCA.SYSTEM.WPP04.
    Bus :  1244" (0x000000001CECE200)
    which is waiting for:
    sys_mon_t:0x000000493F590D80 infl_mon_t: 0x000000493F590DF0:
    com/ibm/ws/sib/mfp/jmf/impl/JSMessageImpl@0x00000000B9202360/
    0x00000000B920236C:
    which is owned by:
    Thread "JS-ReceiveListenerDispatcher:4292"(0x000000001D75ED00)
    
    
    Following is the stacktrace of both the threads.
    .
    com/ibm/ws/sib/mfp/jmf/impl/JSMessageData.lazyCopy(JSMessageData
    .java:1194)
    com/ibm/ws/sib/mfp/jmf/impl/JSVaryingListImpl.getCopy(JSVaryingL
    istImpl.java:212)
    com/ibm/ws/sib/mfp/jmf/impl/JSListCoder.copy(JSListCoder.java:14
    3)
    com/ibm/ws/sib/mfp/jmf/impl/JSField.copyValue(JSField.java:269)
    com/ibm/ws/sib/mfp/jmf/impl/JSMessageData.copyCache(JSMessageDat
    a.java:1120)
    com/ibm/ws/sib/mfp/jmf/impl/JSMessageData.getInternal(JSMessageD
    ata.java:546)
    com/ibm/ws/sib/mfp/jmf/impl/JSMessageData.getValue(JSMessageData
    .java:489)
    com/ibm/ws/sib/mfp/jmf/impl/JSMessageImpl.getValue(JSMessageImpl
    .java:1132)
    com/ibm/ws/sib/mfp/impl/JsMsgPart.getField(JsMsgPart.java:99)
    ..
    ..
    ..
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  Users of the default messaging provider     *
    *                  for IBM WebSphere Application Server        *
    *                  versions 7.0, 8.0 and 8.5.                  *
    ****************************************************************
    * PROBLEM DESCRIPTION: Deadlock is detected in                 *
    *                      JSMessageData.lazyCopy().               *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    Deadlock is detected in JSMessageData.lazyCopy() because of the
    "shared cache" which shares JSMessageData instances between
    threads.
    The lazyCopy() operation access two JSMessageData objects
    which are source and target. In a deadlock scenario, for
    thread1, JSMessageData1 acts as a source and JSMessageData2 as
    a target. At the same time, for thread2, JSMessageData2 acts
    as a source and JSMessageData1 as a target.
    Thread1:
    --------
    Operation: lazyCopy
    Acquired lock on: JSMessageData1
    Waiting to acqruire lock on: JSMessageData2
    Thread2:
    --------
    Operation: lazyCopy
    Acquired lock on: JSMessageData2
    Waiting to acqruire lock on: JSMessageData1
    The deadlock stacktrace is as follows.
    com.ibm.ws.sib.mfp.jmf.impl.JSMessageData.lazyCopy()
    com.ibm.ws.sib.mfp.jmf.impl.JSVaryingListImpl.getCopy()
    com.ibm.ws.sib.mfp.jmf.impl.JSListCoder.copy()
    com.ibm.ws.sib.mfp.jmf.impl.JSField.copyValue()
    com.ibm.ws.sib.mfp.jmf.impl.JSMessageData.copyCache()
    com.ibm.ws.sib.mfp.jmf.impl.JSMessageData.getInternal()
    com.ibm.ws.sib.mfp.jmf.impl.JSMessageData.getValue()
    com.ibm.ws.sib.mfp.jmf.impl.JSMessageImpl.getValue()
    com.ibm.ws.sib.mfp.impl.JsMsgPart.getField()
    ..
    ..
    

Problem conclusion

  • The fix is to do copyCache() operation (which in-turn calls
    lazyCopy()) on JSMessageData before adding JSMessageData
    object in to the shared cache and accessible for other threads.
    
    The fix for this APAR is currently targeted for inclusion
    in fix packs 7.0.0.27, 8.0.0.6 and 8.5.0.2.
    
    Please refer to the Recommended Updates page fordelivery
    information:
    http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM68797

  • Reported component name

    WAS SIB & SIBWS

  • Reported component ID

    620800101

  • Reported release

    300

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-07-13

  • Closed date

    2013-02-28

  • Last modified date

    2013-06-12

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    WAS SIB & SIBWS

  • Fixed component ID

    620800101

Applicable component levels

  • R800 PSY

       UP



Document information

More support for: WebSphere Application Server
Service Integration Technology

Software version: 7.0

Reference #: PM68797

Modified date: 12 June 2013