IBM Support

PI06011: An eXtreme Scale deadlock can occur when an ObjectGridEventListener end method creates a transaction that

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • A deadlock can occur when an ObjectGridEventListener
    transaction end method creates a transaction that times out.
    The following example resembles the time out errors that you
    can experience:
    
    Deadlock detected !!!
    
    
    Thread "WXS : 896: TTLEvictorForMap"
    is waiting for:
    com/ibm/ws/objectgrid/SessionImpl
    which is owned by:
    Thread "TransactionManager : 9"
    which is waiting for:
    Thread "WXS : 896: TTLEvictorForMap-Session
    
    
    "WXS : 896: TTLEvictorForMap-Session"
    Blocked on: com/ibm/ws/objectgrid/SessionImpl
    Owned
    by: "TransactionManager : 9"
    Java callstack:
    at
    com/ibm/ws/objectgrid/ObjectMapImpl.checkIfPermittedDuringCommit
    (ObjectMapImpl.java:1733(Compiled Code))
    at
    com/ibm/ws/objectgrid/ObjectMapImpl.insert(ObjectMapImpl.java:13
    05(Compiled Code))
    at
    com/ibm/ws/objectgrid/ObjectMapImpl.insert(ObjectMapImpl.java:12
    89(Compiled Code))
    at
    com/mypackage/EvictionEventPublisher.notifyEviction(Evictio
    nEventPublisher.java:122(Compiled Code))
    at
    com/mypackage/EvictionEventPublisher.transactionEnd(Evictio
    nEventPublisher.java:93(Compiled Code))
    at
    com/ibm/ws/objectgrid/OGEventListenerHandler.fireTransactionEnd(
    OGEventListenerHandler.java:461(Compiled Code))
    (entered lock: [B@0x000000004314C600, entry count: 1)
    at
    com/ibm/ws/objectgrid/SessionImpl.afterCompletion(SessionImpl.ja
    va:2275(Compiled Code))
    at
    com/ibm/ws/objectgrid/SessionImpl.commit(SessionImpl.java:2036(C
    ompiledCode))
    (entered lock:
    com/ibm/ws/objectgrid/SessionImpl@0x000000004520E608,
    entry count: 1)
    at
    com/ibm/ws/objectgrid/map/BaseMap.evictMapEntries(BaseMap.java:3
    707(Compiled Code))
    at
    com/ibm/ws/objectgrid/plugins/TTLEvictor.run(TTLEvictor.java:153
    5(Compiled Code))
    at
    com/ibm/ws/objectgrid/util/security/SecurityContextRunnable$2.ru
    n(SecurityContextRunnable.java:111(Compiled Code))
    at
    com/ibm/ws/security/auth/ContextManagerImpl.runAs(ContextManager
    Impl.java:5453(Compiled Code))
    at
    com/ibm/ws/security/auth/ContextManagerImpl.runAsSystem(ContextM
    anagerImpl.java:5579(Compiled Code))
    at
    com/ibm/ws/objectgrid/util/security/SecurityContextRunnable.runW
    ithServerContext(SecurityContextRunnable.java:109(Compiled
    Code))
    at
    com/ibm/ws/objectgrid/util/security/SecurityContextRunnable.run(
    SecurityContextRunnable.java:68(Compiled Code))
    at
    java/util/concurrent/ThreadPoolExecutor$Worker.runTask(ThreadPoo
    lExecutor.java:897(Compiled Code))
    at
    java/util/concurrent/ThreadPoolExecutor$Worker.run(ThreadPoolExe
    cutor.java:919(Compiled Code))
    at java/lang/Thread.run(Thread.java:772(Compiled Code))
    
    "TransactionManager : 9"
    Blocked on: [B@0x000000004314C600 Owned by: "WXS : 896:
    TTLEvictorForMap-Session"
    Java callstack:
    at
    com/ibm/ws/objectgrid/OGEventListenerHandler.fireTransactionEnd(
    OGEventListenerHandler.java:406(Compiled Code))
    at
    com/ibm/ws/objectgrid/SessionImpl.afterCompletion(SessionImpl.ja
    va:2275(Compiled Code))
    at
    com/ibm/ws/objectgrid/SessionImpl.makeCleanForRollbackOnly(Sessi
    onImpl.java:2659)
    (entered lock:
    com/ibm/ws/objectgrid/SessionImpl@0x00000000451F0E40,
    entry count: 1)
    at
    com/ibm/ws/objectgrid/transaction/TransactionManager.processAsyn
    cRollback(TransactionManager.java:468)
    at
    com/ibm/ws/objectgrid/transaction/TransactionManager.rollbackNex
    tBucket(TransactionManager.java:363(Compiled Code))
    at
    com/ibm/ws/objectgrid/transaction/TransactionManager$TimeoutReap
    er$1.run(TransactionManager.java:723(Compiled Code))
    at
    java/util/concurrent/ThreadPoolExecutor$Worker.runTask(ThreadPoo
    lExecutor.java:897(Compiled Code))
    at
    java/util/concurrent/ThreadPoolExecutor$Worker.run(ThreadPoolExe
    cutor.java:919(Compiled Code))
    at java/lang/Thread.run(Thread.java:772(Compiled Code))
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  WebSphere eXtreme Scale users who start     *
    *                  transactions within their                   *
    *                  ObjectGridEventListener transactionEnd().   *
    ****************************************************************
    * PROBLEM DESCRIPTION: The ObjectGridEventListener             *
    *                      transactionEnd() times out and causes   *
    *                      a deadlock between threads.             *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    A deadlock occurs between the ObjectGridEventListener
    transactionEnd() thread and a thread that cleans up the
    timed out transaction.
    The thread calling the transaction end method has a listener
    lock. If a user starts a new transaction in the transaction end
    method that times out, the reaper thread obtains a lock
    on the session and waits to get the listener lock. Meanwhile,
    the first thread can wait to get a session lock and a deadlock
    occurs between these two threads.
    

Problem conclusion

  • The code running in the reaper thread was changed to release
    the session lock before attempting to get the listener lock,
    which prevents a deadlock from occurring.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI06011

  • Reported component name

    WS EXTREME SCAL

  • Reported component ID

    5724X6702

  • Reported release

    850

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-11-12

  • Closed date

    2013-12-09

  • Last modified date

    2013-12-09

  • 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

    WS EXTREME SCAL

  • Fixed component ID

    5724X6702

Applicable component levels

  • R850 PSY

       UP

  • R860 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSTVLU","label":"WebSphere eXtreme Scale"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"850","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
09 December 2013