IBM Support

PI77306: DEADLOCK MAY OCCUR WHEN STOPPING LISTENER PORT

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

  • Deadlock occurs when stopping listener port.  A javacore shows
    two threads that have entered a deadlocked state with
    callstacks similar to below:
    
    Waiting on condition
    Monitor
    Owns Monitor Lock on java/util/Vector@0x0000000089B6AC90
    Java Stack
    at java/lang/Object.wait(Native Method)
    at java/lang/Object.wait(Object.java:172(Compiled Code))
    at
    com/ibm/mq/jmqi/remote/api/RemoteHconn.waitOnDispatchEvent(Remot
    eHconn.java:529)
    ...
    at
    com/ibm/msg/client/jms/internal/JmsSessionImpl.close(JmsSessionI
    mpl.java:343(Compiled Code))
    at com/ibm/mq/jms/MQSession.close(MQSession.java:275(Compiled
    Code))
    at
    com/ibm/ejs/jms/JMSManagedSession.destroy(JMSManagedSession.java
    :529(Compiled Code))
    at
    com/ibm/ejs/j2c/MCWrapper.destroy(MCWrapper.java:2097(Compiled
    Code))
    ...
    at
    com/ibm/ejs/j2c/ConnectionEventListener.connectionClosed(Connect
    ionEventListener.java:384(Compiled Code))
    at
    com/ibm/ejs/jms/JMSManagedSession.handleClosed(JMSManagedSession
    .java:796(Compiled Code))
    ...
    at
    com/ibm/ejs/jms/listener/ServerSessionPool.closeFreeSessions(Ser
    verSessionPool.java:335)
    at
    com/ibm/ejs/jms/listener/ServerSessionPool.softClose(ServerSessi
    onPool.java:312)
    at
    com/ibm/ejs/jms/listener/MDBListenerImpl.internalStop(MDBListene
    rImpl.java:956)
    at
    com/ibm/ejs/jms/listener/JMSExceptionListener.onException(JMSExc
    eptionListener.java:129)
    at
    com/ibm/ejs/jms/JMSManagedConnection.onException(JMSManagedConne
    ction.java:1501)
    
    
    
    Blocked
    Monitor
    Waiting for Monitor Lock on java/util/Vector@0x0000000089B6AC90
    Java Stack
    at
    com/ibm/ejs/jms/listener/ServerSessionPool.getServerSession(Serv
    erSessionPool.java:399(Compiled Code))
    at
    com/ibm/msg/client/jms/internal/JmsConnectionConsumerImpl$JmsMes
    sageReferenceHandlerImpl.endDeliverInternal(JmsConnectionConsume
    rImpl.java:358(Compiled Code))
    at
    com/ibm/msg/client/jms/internal/JmsConnectionConsumerImpl$JmsMes
    sageReferenceHandlerImpl.handleMessageReference(JmsConnectionCon
    sumerImpl.java:477(Compiled Code))
    at
    com/ibm/msg/client/jms/internal/JmsConnectionImpl$JmsProviderMes
    sageRefHandler.handleMessageReference(JmsConnectionImpl.java:189
    7(Compiled Code))
    at
    com/ibm/msg/client/wmq/internal/WMQConnectionBrowser$WMQConnecti
    onBrowserShadow.consumer(WMQConnectionBrowser.java:929(Compiled
    Code))
    at
    com/ibm/mq/jmqi/remote/impl/RemoteProxyQueue.driveConsumer(Remot
    eProxyQueue.java:4350(Compiled Code))
    at
    com/ibm/mq/jmqi/remote/impl/RemoteProxyQueue.checkTxnMessage(Rem
    oteProxyQueue.java:4243)
    at
    com/ibm/mq/jmqi/remote/impl/RemoteProxyQueueManager.checkTxnMess
    age(RemoteProxyQueueManager.java:394)
    at
    com/ibm/mq/jmqi/remote/api/RemoteHconn.checkTxnMessage(RemoteHco
    nn.java:325)
    at
    com/ibm/mq/jmqi/remote/api/RemoteHconn.doSuspend(RemoteHconn.jav
    a:3334)
    at
    com/ibm/mq/jmqi/remote/impl/RemoteDispatchThread.processHconn(Re
    moteDispatchThread.java:654(Compiled Code))
    at
    com/ibm/mq/jmqi/remote/impl/RemoteDispatchThread.run(RemoteDispa
    tchThread.java:221(Compiled Code))
    at
    com/ibm/msg/client/commonservices/workqueue/WorkQueueItem.runTas
    k(WorkQueueItem.java:319)
    at
    com/ibm/msg/client/commonservices/workqueue/SimpleWorkQueueItem.
    runItem(SimpleWorkQueueItem.java:99)
    at
    com/ibm/msg/client/commonservices/workqueue/WorkQueueItem.run(Wo
    rkQueueItem.java:341(Compiled Code))
    at
    com/ibm/ws/wmqcsi/workqueue/WorkQueueManagerImpl$WorkQueueRunnab
    le.run(WorkQueueManagerImpl.java:550(Compiled Code))
    at java/lang/Thread.run(Thread.java:785)
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  WebSphere Application Server users of       *
    *                  listener ports                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: A deadlock occurs when stopping a       *
    *                      listener port when using WebSphere MQ   *
    *                      as the JMS Provider.                    *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The listener port code within the WebSphere Application
    Server messaging component executed methods on the JMS
    provider within a synchronization block.  The JMS provider also
    performed its own synchronization internally and made calls
    into the WebSphere Application Service messaging component
    while holding its own intrinsic locks.
    This meant that a thread that had acquired the intrinsic lock
    in the messaging component could then block waiting for the
    intrinsic lock within the JMS provider which was held by a
    different thread which itself was blocked waiting for the
    intrinsic lock in the messaging component.
    This resulted in an ABBA deadlock.
    

Problem conclusion

  • Synchronization within the messaging component was modified so
    that calls made to the external JMS provider were made outside
    of intrinsic locks held by the messaging component.
    
    The fix for this APAR is currently targeted for inclusion in
    fix packs 8.0.0.14, 8.5.5.12 and 9.0.0.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

    PI77306

  • Reported component name

    WEBSPHERE APP S

  • Reported component ID

    5724J0800

  • Reported release

    900

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-02-28

  • Closed date

    2017-04-18

  • Last modified date

    2017-04-18

  • 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

    WEBSPHERE APP S

  • Fixed component ID

    5724J0800

Applicable component levels

  • R800 PSY

       UP

  • R850 PSY

       UP

  • R900 PSY

       UP



Document information

More support for: WebSphere Application Server
General

Software version: 900

Reference #: PI77306

Modified date: 18 April 2017


Translate this page: