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]