IBM Support

PI39344: EJB application update time greater than two minutes when server is under load

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When an EJB application is updated while the server process
    is under load, it is possible that starting of the updated
    application may appear to hang for two minutes before
    resuming and completing normally. This hang condition is
    caused by a deadlock that occurs between two threads, one
    that is starting the application, and one that is attempting
    to access an EJB in the updated application. The deadlock
    will timeout after two minutes, and application start will
    complete normally.
    
    A javacore taken at the time of the hang will show a thread
    holding two locks and in waiting as follows:
    
    Waiting on:
    com/ibm/ws/ejbcontainer/osgi/internal/metadata/OSGiEJBApplic
    ationMetaData@0x000000003FC39208 Owned by: <unowned>
             Heap bytes allocated since last GC cycle=0 (0x0)
             Java callstack:
                    at java/lang/Object.wait(Native Method)
    at
    java/util/concurrent/TimeUnit.timedWait(TimeUnit.java:334)
    at
    com/ibm/ejs/csi/EJBApplicationMetaData.checkIfEJBWorkAllowed
    (EJBApplicationMetaData.java:521)
    (entered lock:
    com/ibm/ws/ejbcontainer/osgi/internal/metadata/OSGiEJBApplic
    ationMetaData@0x000000003FC39208, entry count: 1)
    at
    com/ibm/ejs/container/HomeRecord.getHomeAndInitialize(HomeRe
    cord.java:215)
    at
    com/ibm/ejs/container/HomeOfHomes.getHome(HomeOfHomes.java:3
    57)
    at
    com/ibm/ejs/container/HomeOfHomes.getHomeByInterface(HomeOfH
    omes.java:855)
    (entered lock:
    com/ibm/ejs/container/HomeOfHomes$AppLinkData@0x000000003FC3
    D300, entry count: 1)
    at
    com/ibm/ws/ejbcontainer/injection/factory/EJBLinkObjectFacto
    ry.getObjectInstance(EJBLinkObjectFactory.java:220)
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server Liberty Profile - Enterprise Java    *
    *                  Beans (EJB)                                 *
    ****************************************************************
    * PROBLEM DESCRIPTION: EJB application update time greater     *
    *                      than two minutes when server is under   *
    *                      load                                    *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    When an EJB application is updated while the server process is
    under load, it is possible that starting of the updated
    application may appear to hang for two minutes before resuming
    and completing normally. This hang condition is caused by a
    deadlock that occurs between two threads, one that is starting
    the application, and one that is attempting to access an EJB in
    the updated application.  The deadlock will timeout after two
    minutes, and application start will complete normally.
    
    A javacore taken at the time of the hang will show a thread
    holding two locks and in waiting as follows:
    
    Waiting on:
    com/ibm/ws/ejbcontainer/osgi/internal/metadata/OSGiEJBApplicatio
    nMetaData@0x000000003FC39208 Owned by: <unowned>
             Heap bytes allocated since last GC cycle=0 (0x0)
             Java callstack:
                    at java/lang/Object.wait(Native Method)
                    at
    java/util/concurrent/TimeUnit.timedWait(TimeUnit.java:334)
                    at
    com/ibm/ejs/csi/EJBApplicationMetaData.checkIfEJBWorkAllowed(EJB
    ApplicationMetaData.java:521)
                       (entered lock:
    com/ibm/ws/ejbcontainer/osgi/internal/metadata/OSGiEJBApplicatio
    nMetaData@0x000000003FC39208, entry count: 1)
                    at
    com/ibm/ejs/container/HomeRecord.getHomeAndInitialize(HomeRecord
    .java:215)
                    at
    com/ibm/ejs/container/HomeOfHomes.getHome(HomeOfHomes.java:357)
                    at
    com/ibm/ejs/container/HomeOfHomes.getHomeByInterface(HomeOfHomes
    .java:855)
                       (entered lock:
    com/ibm/ejs/container/HomeOfHomes$AppLinkData@0x000000003FC3D300
    , entry count: 1)
                    at
    com/ibm/ws/ejbcontainer/injection/factory/EJBLinkObjectFactory.g
    etObjectInstance(EJBLinkObjectFactory.java:220)
    

Problem conclusion

  • The EJB container support for ejb-link in the server process has
    been updated to not hold locks while obtaining a reference to
    the linked EJB.  This will prevent the application that is
    attempting to access an EJB from interfering with the starting
    of the application that contains that EJB.  The dead-lock will
    no longer occur.  The application will start in a normal amount
    of time.
    
    The fix for this APAR is currently targeted for inclusion in fix
    pack 8.5.5.6.  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

    PI39344

  • Reported component name

    WAS LIBERTY COR

  • Reported component ID

    5725L2900

  • Reported release

    855

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2015-04-19

  • Closed date

    2015-05-07

  • Last modified date

    2015-08-19

  • 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 LIBERTY COR

  • Fixed component ID

    5725L2900

Applicable component levels

  • R855 PSY

       UP

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

Document Information

Modified date:
28 April 2022