You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Philip Harvey (JIRA)" <ji...@apache.org> on 2012/08/31 16:28:09 UTC
[jira] [Created] (QPID-4276) Java client - deadlock on concurrent
close of consumer and connection
Philip Harvey created QPID-4276:
-----------------------------------
Summary: Java client - deadlock on concurrent close of consumer and connection
Key: QPID-4276
URL: https://issues.apache.org/jira/browse/QPID-4276
Project: Qpid
Issue Type: Bug
Components: Java Client
Affects Versions: 0.16, 0.18
Reporter: Philip Harvey
We have observed a deadlock on the Java client when a consumer and its connection are simultaneously closed.
See attached stack trace for details.
We think this locking bug was introduced when fixing QPID-3911.
--
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: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org
[jira] [Updated] (QPID-4276) Java client - deadlock on concurrent
close of consumer and connection
Posted by "Philip Harvey (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/QPID-4276?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Philip Harvey updated QPID-4276:
--------------------------------
Description:
We have observed a deadlock on the Java client when a consumer and its connection are simultaneously closed.
See attached stack trace for details.
We think this locking bug was introduced when fixing QPID-3911.
See thread dump excerpt below:
{noformat}
Found one Java-level deadlock:
=============================
"Thread-11-Consumer_0":
waiting to lock monitor 0x000000004342b4c0 (object 0x00000000ed1e6a40, a java.lang.Object),
which is held by "Dispatcher-1-Conn-1"
"Dispatcher-1-Conn-1":
waiting to lock monitor 0x000000004342b568 (object 0x00000000ed060c48, a java.lang.Object),
which is held by "Thread-11-Consumer_0"
Java stack information for the threads listed above:
===================================================
"Thread-11-Consumer_0":
at org.apache.qpid.client.BasicMessageConsumer.close(BasicMessageConsumer.java:598)
- waiting to lock <0x00000000ed1e6a40> (a java.lang.Object)
- locked <0x00000000ed060c48> (a java.lang.Object)
at org.apache.qpid.client.BasicMessageConsumer.close(BasicMessageConsumer.java:558)
at org.apache.qpid.disttest.jms.ClientJmsDelegate.closeTestConsumer(ClientJmsDelegate.java:612)
at org.apache.qpid.disttest.client.ConsumerParticipant.releaseResources(ConsumerParticipant.java:244)
at org.apache.qpid.disttest.client.ParticipantExecutor$ParticipantRunnable.runParticipantAndSendResults(ParticipantExecutor.java:112)
at org.apache.qpid.disttest.client.ParticipantExecutor$ParticipantRunnable.run(ParticipantExecutor.java:84)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
"Dispatcher-1-Conn-1":
at org.apache.qpid.client.AMQConnection.doClose(AMQConnection.java:857)
- waiting to lock <0x00000000ed060c48> (a java.lang.Object)
- locked <0x00000000ed060c58> (a java.lang.Object)
at org.apache.qpid.client.AMQConnection.doClose(AMQConnection.java:848)
- locked <0x00000000ed0bedd8> (a java.lang.Object)
- locked <0x00000000ed060c58> (a java.lang.Object)
at org.apache.qpid.client.AMQConnection.doClose(AMQConnection.java:848)
- locked <0x00000000ed1e6a40> (a java.lang.Object)
- locked <0x00000000ed060c58> (a java.lang.Object)
at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:832)
at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:823)
at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:818)
at org.apache.qpid.disttest.jms.ClientJmsDelegate.tearDownTest(ClientJmsDelegate.java:574)
at org.apache.qpid.disttest.client.Client.tearDownTest(Client.java:179)
at org.apache.qpid.disttest.client.ClientCommandVisitor.visit(ClientCommandVisitor.java:90)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.qpid.disttest.Visitor.invokeVisitMethod(Visitor.java:61)
at org.apache.qpid.disttest.Visitor.visit(Visitor.java:39)
at org.apache.qpid.disttest.message.Command.accept(Command.java:48)
at org.apache.qpid.disttest.client.Client.processInstruction(Client.java:113)
at org.apache.qpid.disttest.jms.ClientJmsDelegate$1.onMessage(ClientJmsDelegate.java:122)
at org.apache.qpid.client.BasicMessageConsumer.notifyMessage(BasicMessageConsumer.java:751)
at org.apache.qpid.client.BasicMessageConsumer.notifyMessage(BasicMessageConsumer.java:725)
at org.apache.qpid.client.AMQSession$Dispatcher.notifyConsumer(AMQSession.java:3479)
at org.apache.qpid.client.AMQSession$Dispatcher.dispatchMessage(AMQSession.java:3418)
- locked <0x00000000ed1a30f0> (a java.lang.Object)
- locked <0x00000000ed186400> (a java.lang.Object)
at org.apache.qpid.client.AMQSession$Dispatcher.access$1000(AMQSession.java:3205)
at org.apache.qpid.client.AMQSession.dispatch(AMQSession.java:3198)
at org.apache.qpid.client.message.UnprocessedMessage.dispatch(UnprocessedMessage.java:54)
at org.apache.qpid.client.AMQSession$Dispatcher.run(AMQSession.java:3341)
at java.lang.Thread.run(Thread.java:662)
Found 1 deadlock.
{noformat}
was:
We have observed a deadlock on the Java client when a consumer and its connection are simultaneously closed.
See attached stack trace for details.
We think this locking bug was introduced when fixing QPID-3911.
> Java client - deadlock on concurrent close of consumer and connection
> ---------------------------------------------------------------------
>
> Key: QPID-4276
> URL: https://issues.apache.org/jira/browse/QPID-4276
> Project: Qpid
> Issue Type: Bug
> Components: Java Client
> Affects Versions: 0.16, 0.18
> Reporter: Philip Harvey
> Attachments: deadlock.stacktrace.txt
>
>
> We have observed a deadlock on the Java client when a consumer and its connection are simultaneously closed.
> See attached stack trace for details.
> We think this locking bug was introduced when fixing QPID-3911.
> See thread dump excerpt below:
> {noformat}
> Found one Java-level deadlock:
> =============================
> "Thread-11-Consumer_0":
> waiting to lock monitor 0x000000004342b4c0 (object 0x00000000ed1e6a40, a java.lang.Object),
> which is held by "Dispatcher-1-Conn-1"
> "Dispatcher-1-Conn-1":
> waiting to lock monitor 0x000000004342b568 (object 0x00000000ed060c48, a java.lang.Object),
> which is held by "Thread-11-Consumer_0"
> Java stack information for the threads listed above:
> ===================================================
> "Thread-11-Consumer_0":
> at org.apache.qpid.client.BasicMessageConsumer.close(BasicMessageConsumer.java:598)
> - waiting to lock <0x00000000ed1e6a40> (a java.lang.Object)
> - locked <0x00000000ed060c48> (a java.lang.Object)
> at org.apache.qpid.client.BasicMessageConsumer.close(BasicMessageConsumer.java:558)
> at org.apache.qpid.disttest.jms.ClientJmsDelegate.closeTestConsumer(ClientJmsDelegate.java:612)
> at org.apache.qpid.disttest.client.ConsumerParticipant.releaseResources(ConsumerParticipant.java:244)
> at org.apache.qpid.disttest.client.ParticipantExecutor$ParticipantRunnable.runParticipantAndSendResults(ParticipantExecutor.java:112)
> at org.apache.qpid.disttest.client.ParticipantExecutor$ParticipantRunnable.run(ParticipantExecutor.java:84)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:662)
> "Dispatcher-1-Conn-1":
> at org.apache.qpid.client.AMQConnection.doClose(AMQConnection.java:857)
> - waiting to lock <0x00000000ed060c48> (a java.lang.Object)
> - locked <0x00000000ed060c58> (a java.lang.Object)
> at org.apache.qpid.client.AMQConnection.doClose(AMQConnection.java:848)
> - locked <0x00000000ed0bedd8> (a java.lang.Object)
> - locked <0x00000000ed060c58> (a java.lang.Object)
> at org.apache.qpid.client.AMQConnection.doClose(AMQConnection.java:848)
> - locked <0x00000000ed1e6a40> (a java.lang.Object)
> - locked <0x00000000ed060c58> (a java.lang.Object)
> at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:832)
> at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:823)
> at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:818)
> at org.apache.qpid.disttest.jms.ClientJmsDelegate.tearDownTest(ClientJmsDelegate.java:574)
> at org.apache.qpid.disttest.client.Client.tearDownTest(Client.java:179)
> at org.apache.qpid.disttest.client.ClientCommandVisitor.visit(ClientCommandVisitor.java:90)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.qpid.disttest.Visitor.invokeVisitMethod(Visitor.java:61)
> at org.apache.qpid.disttest.Visitor.visit(Visitor.java:39)
> at org.apache.qpid.disttest.message.Command.accept(Command.java:48)
> at org.apache.qpid.disttest.client.Client.processInstruction(Client.java:113)
> at org.apache.qpid.disttest.jms.ClientJmsDelegate$1.onMessage(ClientJmsDelegate.java:122)
> at org.apache.qpid.client.BasicMessageConsumer.notifyMessage(BasicMessageConsumer.java:751)
> at org.apache.qpid.client.BasicMessageConsumer.notifyMessage(BasicMessageConsumer.java:725)
> at org.apache.qpid.client.AMQSession$Dispatcher.notifyConsumer(AMQSession.java:3479)
> at org.apache.qpid.client.AMQSession$Dispatcher.dispatchMessage(AMQSession.java:3418)
> - locked <0x00000000ed1a30f0> (a java.lang.Object)
> - locked <0x00000000ed186400> (a java.lang.Object)
> at org.apache.qpid.client.AMQSession$Dispatcher.access$1000(AMQSession.java:3205)
> at org.apache.qpid.client.AMQSession.dispatch(AMQSession.java:3198)
> at org.apache.qpid.client.message.UnprocessedMessage.dispatch(UnprocessedMessage.java:54)
> at org.apache.qpid.client.AMQSession$Dispatcher.run(AMQSession.java:3341)
> at java.lang.Thread.run(Thread.java:662)
> Found 1 deadlock.
> {noformat}
--
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: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org
[jira] [Updated] (QPID-4276) Java client - deadlock on concurrent
close of consumer and connection
Posted by "Philip Harvey (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/QPID-4276?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Philip Harvey updated QPID-4276:
--------------------------------
Attachment: deadlock.stacktrace.txt
attached stack trace
> Java client - deadlock on concurrent close of consumer and connection
> ---------------------------------------------------------------------
>
> Key: QPID-4276
> URL: https://issues.apache.org/jira/browse/QPID-4276
> Project: Qpid
> Issue Type: Bug
> Components: Java Client
> Affects Versions: 0.16, 0.18
> Reporter: Philip Harvey
> Attachments: deadlock.stacktrace.txt
>
>
> We have observed a deadlock on the Java client when a consumer and its connection are simultaneously closed.
> See attached stack trace for details.
> We think this locking bug was introduced when fixing QPID-3911.
--
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: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org