You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Michael Samson (JIRA)" <ji...@apache.org> on 2014/05/11 00:12:29 UTC
[jira] [Commented] (QPID-5756) Qpid Deadlock during JMS connection
close when connected to ActiveMQ
[ https://issues.apache.org/jira/browse/QPID-5756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13993008#comment-13993008 ]
Michael Samson commented on QPID-5756:
--------------------------------------
I also found an additional deadlock with a Connection open:
"Thread-408" daemon prio=10 tid=0x00007f24e838a000 nid=0x5a36 in Object.wait() [0x00007f24ace4d000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.apache.qpid.amqp_1_0.framing.ConnectionHandler$FrameOutput.getNextFrame(ConnectionHandler.java:175)
- locked <0x000000078d07f8c8> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
at org.apache.qpid.amqp_1_0.framing.ConnectionHandler$FrameToBytesSourceAdapter.getBytes(ConnectionHandler.java:275)
at org.apache.qpid.amqp_1_0.framing.ConnectionHandler$SequentialBytesSource.getBytes(ConnectionHandler.java:368)
- locked <0x000000078d07f610> (a org.apache.qpid.amqp_1_0.framing.ConnectionHandler$SequentialBytesSource)
at org.apache.qpid.amqp_1_0.framing.ConnectionHandler$BytesOutputHandler.run(ConnectionHandler.java:403)
at java.lang.Thread.run(Thread.java:744)
"ConnectionManagementAndRecoveryWorker-id: 3" prio=10 tid=0x00007f24f8117000 nid=0x4f47 in Object.wait() [0x00007f25097f1000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:503)
at org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.open(ConnectionEndpoint.java:154)
- locked <0x000000078d07f8c8> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
- locked <0x000000078d07f8c8> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
at org.apache.qpid.amqp_1_0.client.Connection.<init>(Connection.java:300)
at org.apache.qpid.amqp_1_0.client.Connection.<init>(Connection.java:157)
at org.apache.qpid.amqp_1_0.jms.impl.ConnectionImpl.connect(ConnectionImpl.java:115)
- locked <0x000000078d080c10> (a java.lang.Object)
at org.apache.qpid.amqp_1_0.jms.impl.ConnectionImpl.start(ConnectionImpl.java:284)
- locked <0x000000078d080c10> (a java.lang.Object)
at com.axeda.axstream.transport.amqp.qpid.QpidConnectionWrapper.open(QpidConnectionWrapper.java:474)
at com.axeda.axstream.transport.amqp.qpid.QpidConnectionWrapper$ConnectionManagementAndRecoveryWorker.closeAndReopenConnectionWithExponentialBackoffError(QpidConnectionWrapper.java:1538)
at com.axeda.axstream.transport.amqp.qpid.QpidConnectionWrapper$ConnectionManagementAndRecoveryWorker.manageConnection(QpidConnectionWrapper.java:1469)
at com.axeda.axstream.transport.amqp.qpid.QpidConnectionWrapper$ConnectionManagementAndRecoveryWorker.run(QpidConnectionWrapper.java:1389)
at java.lang.Thread.run(Thread.java:744)
> Qpid Deadlock during JMS connection close when connected to ActiveMQ
> --------------------------------------------------------------------
>
> Key: QPID-5756
> URL: https://issues.apache.org/jira/browse/QPID-5756
> Project: Qpid
> Issue Type: Bug
> Components: Java Client
> Affects Versions: 0.27
> Environment: Qpid JMS libraries 0.27 SVN revision 1547654 with socket timeout patch
> AMQP JMS Client was running on 64-bit Linux with JDK 1.7
> AMQP Broker was ActiveMQ 5.8 running on EC2 64-bit Linux
> Reporter: Michael Samson
> Attachments: QPID-5756.patch, QpidProducerTestWithClose.java, activemq.xml
>
>
> 1. While sending JMS messages to ActiveMQ broker, the ActiveMQ server threw an OutOfMemoryException.
> 2. Our code processed a JMSException and attempted to shut down the Qpid JMS connection and this processing deadlocked.
> 3. I took several thread dumps in succession (waiting several minutes in between) and noticed that Qpid was deadlocked. I even killed ActiveMQ and Qpid was still deadlocked. Below are the some relevant threads:
> "Thread-263" daemon prio=10 tid=0x00007f24e831f800 nid=0x4f60 in Object.wait() [0x00007f24ed55c000]
> java.lang.Thread.State: TIMED_WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> at org.apache.qpid.amqp_1_0.framing.ConnectionHandler$FrameOutput.send(ConnectionHandler.java:140)
> - locked <0x000000078a160c58> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
> at org.apache.qpid.amqp_1_0.framing.ConnectionHandler$FrameOutput.send(ConnectionHandler.java:120)
> at org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.send(ConnectionEndpoint.java:663)
> - locked <0x000000078a160c58> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
> at org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.send(ConnectionEndpoint.java:626)
> - locked <0x000000078a160c58> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
> at org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.sendEnd(ConnectionEndpoint.java:570)
> - locked <0x000000078a160c58> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
> at org.apache.qpid.amqp_1_0.transport.SessionEndpoint.end(SessionEndpoint.java:176)
> - locked <0x000000078a160c58> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
> at org.apache.qpid.amqp_1_0.transport.SessionEndpoint.end(SessionEndpoint.java:156)
> at org.apache.qpid.amqp_1_0.client.Session.close(Session.java:315)
> - locked <0x000000078cc53538> (a org.apache.qpid.amqp_1_0.client.Session)
> at org.apache.qpid.amqp_1_0.jms.impl.SessionImpl.close(SessionImpl.java:296)
> at org.apache.qpid.amqp_1_0.jms.impl.SessionImpl$1.remoteEnd(SessionImpl.java:117)
> at org.apache.qpid.amqp_1_0.transport.SessionEndpoint.end(SessionEndpoint.java:174)
> - locked <0x000000078a160c58> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
> at org.apache.qpid.amqp_1_0.transport.SessionEndpoint.end(SessionEndpoint.java:156)
> at org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.inputClosed(ConnectionEndpoint.java:428)
> - locked <0x000000078a160c58> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
> at org.apache.qpid.amqp_1_0.client.Connection.doRead(Connection.java:444)
> at org.apache.qpid.amqp_1_0.client.Connection.access$000(Connection.java:51)
> at org.apache.qpid.amqp_1_0.client.Connection$2.run(Connection.java:275)
> at java.lang.Thread.run(Thread.java:744)
> "ConnectionManagementAndRecoveryWorker-id: 0" prio=10 tid=0x00007f24f80eb000 nid=0x4f41 in Object.wait() [0x00007f24a24a4000]
> java.lang.Thread.State: TIMED_WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> at org.apache.qpid.amqp_1_0.framing.ConnectionHandler$FrameOutput.send(ConnectionHandler.java:140)
> - locked <0x000000078a160c58> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
> at org.apache.qpid.amqp_1_0.framing.ConnectionHandler$FrameOutput.send(ConnectionHandler.java:120)
> at org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.send(ConnectionEndpoint.java:663)
> - locked <0x000000078a160c58> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
> at org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.send(ConnectionEndpoint.java:626)
> - locked <0x000000078a160c58> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
> at org.apache.qpid.amqp_1_0.transport.SessionEndpoint.send(SessionEndpoint.java:269)
> at org.apache.qpid.amqp_1_0.transport.SessionEndpoint.sendDetach(SessionEndpoint.java:765)
> at org.apache.qpid.amqp_1_0.transport.LinkEndpoint.detach(LinkEndpoint.java:430)
> - locked <0x000000078a160c58> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
> at org.apache.qpid.amqp_1_0.transport.LinkEndpoint.close(LinkEndpoint.java:392)
> at org.apache.qpid.amqp_1_0.client.Sender.close(Sender.java:398)
> at org.apache.qpid.amqp_1_0.jms.impl.MessageProducerImpl.close(MessageProducerImpl.java:219)
> at org.apache.qpid.amqp_1_0.jms.impl.SessionImpl.close(SessionImpl.java:293)
> at org.apache.qpid.amqp_1_0.jms.impl.ConnectionImpl.close(ConnectionImpl.java:382)
>
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org