Philip Harvey created QPID-5117:
-----------------------------------

             Summary: Java client deadlocks if connection is closed while 
onMessage() is creating a session
                 Key: QPID-5117
                 URL: https://issues.apache.org/jira/browse/QPID-5117
             Project: Qpid
          Issue Type: Bug
          Components: Java Client
    Affects Versions: 0.22
            Reporter: Philip Harvey
         Attachments: jcarder_result_2.dot

I have run the java systests with the [JCarder|http://jcarder.org/] agent 
attached. JCarder detected a potential deadlock when the following are done 
concurrently:
* Application thread closes a connection
* A MessageListener creates a new session on that connection inside onMessage().

Here is a sketch of the wrongly-ordered locking:

{noformat}

Thread "main"
        AMQConnection.close()
                AMQConnection.doClose()
                        lock AMQConnection._sessionCreationLock
                        lock AMQSession.getMessageDeliveryLock()

Thread "Dispatcher-1-Conn-780"
        AMQSession$Dispatcher.dispatchMessage()
                lock AMQSession.this._messageDeliveryLock
                myMessageListener.onMessage()
                        AMQConnection.createSession()
                                lock AMQConnection._sessionCreationLock
{noformat}

I've attached JCarder's GraphViz-format .dot file which represents this 
slightly more comprehensively.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to