IBM Support

PI23717: DEADLOCK IN COM/IBM/EJS/UTIL/CACHE/CACHE.FINDANDFAULT AND COM/IBM/EJS/CONTAINER/HOMERECORD.GETHOMEANDINITIALIZE

Fixes are available

8.5.5.4: WebSphere Application Server V8.5.5 Fix Pack 4
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.5.5.5: WebSphere Application Server V8.5.5 Fix Pack 5
8.5.5.6: WebSphere Application Server V8.5.5 Fix Pack 6
8.0.0.11: WebSphere Application Server V8.0 Fix Pack 11
8.5.5.7: WebSphere Application Server V8.5.5 Fix Pack 7
7.0.0.39: WebSphere Application Server V7.0 Fix Pack 39
8.5.5.8: WebSphere Application Server V8.5.5 Fix Pack 8
8.0.0.12: WebSphere Application Server V8.0 Fix Pack 12
8.5.5.9: WebSphere Application Server V8.5.5 Fix Pack 9
7.0.0.41: WebSphere Application Server V7.0 Fix Pack 41
8.5.5.10: WebSphere Application Server V8.5.5 Fix Pack 10
8.5.5.11: WebSphere Application Server V8.5.5 Fix Pack 11
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.5.5.12: WebSphere Application Server V8.5.5 Fix Pack 12
8.0.0.14: WebSphere Application Server V8.0 Fix Pack 14
8.5.5.13: WebSphere Application Server V8.5.5 Fix Pack 13
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.45: Java SDK 1.6 SR16 FP60 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
8.5.5.14: WebSphere Application Server V8.5.5 Fix Pack 14
8.5.5.15: WebSphere Application Server V8.5.5 Fix Pack 15
8.5.5.14: WebSphere Application Server V8.5.5 Fix Pack 14
8.5.5.17: WebSphere Application Server V8.5.5 Fix Pack 17
8.5.5.20: WebSphere Application Server V8.5.5.20
8.5.5.18: WebSphere Application Server V8.5.5 Fix Pack 18
8.5.5.19: WebSphere Application Server V8.5.5 Fix Pack 19
8.5.5.16: WebSphere Application Server V8.5.5 Fix Pack 16
8.5.5.21: WebSphere Application Server V8.5.5.21

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The deadlock will be captured in a javacore file.  Here is
    example data that will be generated....
    
    Deadlock detected !!!
    ---------------------
    Thread "WorkManager.default : 1504" (0x0000000082A60B00)
      is waiting for:
        sys_mon_t:0x00007FAAB83C04C0 infl_mon_t: 0x00007FAAB83C0530:
    
    com/ibm/ejs/util/cache/WrapperBucket@0x0000000000D749A0/0x000000
    0000D749AC:
      which is owned by:
    Thread "WorkManager.default : 1505" (0x0000000081DFDC00)
      which is waiting for:
        sys_mon_t:0x00007FAAB83C0420 infl_mon_t: 0x00007FAAB83C0490:
        java/lang/String@0x000000001CDA4998/0x000000001CDA49A4:
      which is owned by:
    Thread "WorkManager.default : 1504" (0x0000000082A60B00)
    
    
         The two threads will have data similar to the following in
    the upper portion of the method stack....
    
    "WorkManager.default : 1504" J9VMThread:0x0000000082A60B00,
    j9thread_t:0x00007FAAD405A6D0,
    java/lang/Thread:0x0000000073745D50, state:B, prio=5
    (java/lang/Thread getId:0xC7A, isDaemon:true)
    (native thread ID:0x2922, native priority:0x5, native
    policy:UNKNOWN)
    (native stack address range from:0x00007FAB11D1B000,
    to:0x00007FAB11D5C000, size:0x41000)
    Java callstack:
    at
    com/ibm/ejs/util/cache/Cache.findAndFault(Cache.java:464(Compile
    d Code))
    at
    com/ibm/ejs/container/WrapperManager.keyToObject(WrapperManager.
    java:466(Compiled Code))
    at
    com/ibm/ejs/oa/EJSOAImpl.keyToObject(EJSOAImpl.java:553(Compiled
    Code))
    at
    com/ibm/ejs/oa/EJSRootOAImpl.keyToObject(EJSRootOAImpl.java:271(
    Compiled Code))
    at
    com/ibm/rmi/corba/ObjectManager.lookupServant(ObjectManager.java
    :106(Compiled Code))
    at
    com/ibm/CORBA/iiop/ServerDelegate.getServant(ServerDelegate.java
    :311(Compiled Code))
    at com/ibm/rmi/iiop/ORB.lookupLocalObject(ORB.java:634)
    at com/ibm/CORBA/iiop/ORB.lookupLocalObject(ORB.java:1468)
    at com/ibm/rmi/iiop/CDRReader.newObjRef(CDRReader.java:1310)
    at com/ibm/rmi/iiop/CDRReader.read_Object(CDRReader.java:1151)
    at com/ibm/rmi/iiop/CDRReader.read_Object(CDRReader.java:1115)
    at com/ibm/rmi/corba/IorURL.iorbytesToObjref(IorURL.java:105)
    at com/ibm/rmi/corba/IorURL.resolve(IorURL.java:93)
    at com/ibm/rmi/corba/ORB.objectURLToObject(ORB.java:3884)
    at
    com/ibm/CORBA/iiop/ORB.objectURLToObject(ORB.java:3262(Compiled
    Code))
    at
    com/ibm/rmi/corba/ORB.string_to_object(ORB.java:3784(Compiled
    Code))
    at
    com/ibm/ws/naming/ipcos/WsnOptimizedNamingImpl.resolveUnresolved
    Binding(WsnOptimizedNamingImpl.java:1927(Compiled Code))
    at
    com/ibm/ws/naming/ipcos/WsnOptimizedNamingImpl.resolve_binding(W
    snOptimizedNamingImpl.java:1681(Compiled Code))
    
    
    "WorkManager.default : 1505" J9VMThread:0x0000000081DFDC00,
    j9thread_t:0x00007FAAD405A1E0,
    java/lang/Thread:0x0000000073745CC8, state:B, prio=5
    (java/lang/Thread getId:0xC7B, isDaemon:true)
    (native thread ID:0x2923, native priority:0x5, native
    policy:UNKNOWN)
    (native stack address range from:0x00007FAB121A8000,
    to:0x00007FAB121E9000, size:0x41000)
    Java callstack:
    at
    com/ibm/ejs/container/HomeRecord.getHomeAndInitialize(HomeRecord
    .java:421)
    at
    com/ibm/ejs/container/EJSContainer.getHomeWrapperCommon(EJSConta
    iner.java:1549)
    at
    com/ibm/ejs/container/EJSContainer.getHomeInstance(EJSContainer.
    java:1289)
    at
    com/ibm/ejs/container/EJSContainer.startBean(EJSContainer.java:1
    273)
    at
    com/ibm/ws/runtime/component/EJBContainerImpl.startBean(EJBConta
    inerImpl.java:3519)
    at
    com/ibm/ws/runtime/component/EJBContainerImpl.initializeDeferred
    EJB(EJBContainerImpl.java:4895)
    at
    com/ibm/ejs/container/HomeOfHomes$1.run(HomeOfHomes.java:408(Com
    piled Code))
    at
    com/ibm/ejs/container/HomeOfHomes$1.run(HomeOfHomes.java:406(Com
    piled Code))
    at
    com/ibm/ws/security/util/AccessController.doPrivileged(AccessCon
    troller.java:118(Compiled Code))
    at
    com/ibm/ejs/container/HomeOfHomes.getHome(HomeOfHomes.java:405(C
    ompiled Code))
    at
    com/ibm/ejs/container/HomeOfHomes.getHome(HomeOfHomes.java:340(C
    ompiled Code))
    at
    com/ibm/ejs/container/BeanId.getBeanId(BeanId.java:915(Compiled
    Code))
    at
    com/ibm/ejs/container/WrapperManager.faultOnKey(WrapperManager.j
    ava:543(Compiled Code))
    at
    com/ibm/ejs/util/cache/Cache.findAndFault(Cache.java:498(Compile
    d Code))
    at
    com/ibm/ejs/container/WrapperManager.keyToObject(WrapperManager.
    java:466(Compiled Code))
    at
    com/ibm/ejs/oa/EJSOAImpl.keyToObject(EJSOAImpl.java:553(Compiled
    Code))
    at
    com/ibm/ejs/oa/EJSRootOAImpl.keyToObject(EJSRootOAImpl.java:271(
    Compiled Code))
    at
    com/ibm/rmi/corba/ObjectManager.lookupServant(ObjectManager.java
    :106(Compiled Code))
    at
    com/ibm/CORBA/iiop/ServerDelegate.getServant(ServerDelegate.java
    :311(Compiled Code))
    at com/ibm/rmi/iiop/ORB.lookupLocalObject(ORB.java:634)
    at com/ibm/CORBA/iiop/ORB.lookupLocalObject(ORB.java:1468)
    ...
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of Enterprise Java Beans (EJBs)   *
    ****************************************************************
    * PROBLEM DESCRIPTION: Application logic in EJB constructors   *
    *                      or static initializers can cause a      *
    *                      deadlock while looking up another EJB.  *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    For historical reasons, the EJB container creates a mock
    instance of the EJB class when the EJB is started.  This mock
    instance is only created to ensure that the EJB container can
    successfully call the constructor, and the instance is
    otherwise unused (subsequent actual uses of the EJB will
    create new instances of the EJB class).  If the EJB class has
    logic to look up another EJB in its constructor (including
    member variable initialization) or its class static
    initializer (including static variable initialization) rather
    than in a "PostConstruct" method, then this lookup logic can
    cause a deadlock within the EJB container if the target EJB is
    also being started at the same time.
    

Problem conclusion

  • The EJB class can be modified to look up other EJBs in the
    "PostConstruct" method rather than the constructor or static
    initializer.  Alternatively, a property has been added to the
    EJB container to prevent the mock EJB instance from being
    created when the EJB is started.  Use the following
    instructions:
    
    1. Open the administrative console.
    2. Select Servers -> Server Types -> WebSphere application
    servers.
    3. Select the server you want to configure.
    4. In the Server Infrastructure area, select Java and Process
    Management -> Process definition.
    5. In the Server Infrastructure area, select Process Definition.
    6. In the Additional Properties area, select Java Virtual
    Machine.
    7. In the Additional Properties area, select Custom Properties.
    8. Select the New box.
    9. In the Name entry field, type:
    com.ibm.websphere.ejbcontainer.createInstanceAtStart
    10. In the Value entry field, type: false
    11. Select OK.
    12. Restart the server.
    
    The fix for this APAR is currently targeted for inclusion in
    fix packs 7.0.0.37, 8.0.0.10 and 8.5.5.4.  Please refer to the
    Recommended Updates page for delivery information:
    http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI23717

  • Reported component name

    WEBS APP SERV N

  • Reported component ID

    5724H8800

  • Reported release

    700

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2014-08-12

  • Closed date

    2014-09-05

  • Last modified date

    2014-09-05

  • 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

    WEBS APP SERV N

  • Fixed component ID

    5724H8800

Applicable component levels

  • R700 PSY

       UP

  • R800 PSY

       UP

  • R850 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
28 April 2022