You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Rob Godfrey (JIRA)" <ji...@apache.org> on 2015/03/05 22:14:38 UTC
[jira] [Resolved] (QPID-6433) [Java broker] [AMQP 1.0] Deadlock if
flow arrives as queue is sending message
[ https://issues.apache.org/jira/browse/QPID-6433?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rob Godfrey resolved QPID-6433.
-------------------------------
Resolution: Fixed
Fix Version/s: 0.32
Merged as revision 1664485 on the 0.32 branch
> [Java broker] [AMQP 1.0] Deadlock if flow arrives as queue is sending message
> -----------------------------------------------------------------------------
>
> Key: QPID-6433
> URL: https://issues.apache.org/jira/browse/QPID-6433
> Project: Qpid
> Issue Type: Bug
> Affects Versions: 0.30
> Reporter: Rob Godfrey
> Assignee: Rob Godfrey
> Fix For: 0.32
>
>
> {code}
> "pool-3-thread-18":
> at org.apache.qpid.server.protocol.v1_0.ConsumerTarget_1_0.allocateCredit(ConsumerTarget_1_0.java:299)
> - waiting to lock <0x000000078b134b08> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
> at org.apache.qpid.server.queue.QueueConsumerImpl.wouldSuspend(QueueConsumerImpl.java:278)
> at org.apache.qpid.server.queue.AbstractQueue.attemptDelivery(AbstractQueue.java:2059)
> at org.apache.qpid.server.queue.AbstractQueue.processQueue(AbstractQueue.java:2237)
> at org.apache.qpid.server.queue.QueueRunner$1.run(QueueRunner.java:77)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:356)
> at org.apache.qpid.server.queue.QueueRunner.run(QueueRunner.java:68)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:724)
> "IoReceiver - /127.0.0.1:54387":
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for <0x000000078b283c38> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:867)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1197)
> at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:214)
> at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:290)
> at org.apache.qpid.server.consumer.AbstractConsumerTarget.getSendLock(AbstractConsumerTarget.java:131)
> at org.apache.qpid.server.queue.QueueConsumerImpl.getSendLock(QueueConsumerImpl.java:423)
> at org.apache.qpid.server.queue.AbstractQueue.flushConsumer(AbstractQueue.java:1978)
> at org.apache.qpid.server.queue.AbstractQueue.flushConsumer(AbstractQueue.java:1957)
> at org.apache.qpid.server.queue.QueueConsumerImpl.flush(QueueConsumerImpl.java:318)
> at org.apache.qpid.server.protocol.v1_0.ConsumerTarget_1_0.flush(ConsumerTarget_1_0.java:354)
> at org.apache.qpid.server.protocol.v1_0.SendingLink_1_0.flowStateChanged(SendingLink_1_0.java:499)
> at org.apache.qpid.server.protocol.v1_0.Session_1_0$SubjectSpecificSendingLinkListener$1.run(Session_1_0.java:822)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:356)
> at org.apache.qpid.server.protocol.v1_0.Session_1_0$SubjectSpecificSendingLinkListener.flowStateChanged(Session_1_0.java:817)
> at org.apache.qpid.amqp_1_0.transport.SendingLinkEndpoint.receiveFlow(SendingLinkEndpoint.java:165)
> at org.apache.qpid.amqp_1_0.transport.SessionEndpoint.receiveFlow(SessionEndpoint.java:471)
> - locked <0x000000078b134b08> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
> at org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.receiveFlow(ConnectionEndpoint.java:671)
> - locked <0x000000078b134b08> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
> at org.apache.qpid.amqp_1_0.type.transport.Flow.invoke(Flow.java:288)
> at org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.receive(ConnectionEndpoint.java:803)
> - locked <0x000000078b134b08> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
> at org.apache.qpid.amqp_1_0.framing.FrameHandler.parse(FrameHandler.java:241)
> at org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL$4.run(ProtocolEngine_1_0_0_SASL.java:384)
> at org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL$4.run(ProtocolEngine_1_0_0_SASL.java:380)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:356)
> at org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL.received(ProtocolEngine_1_0_0_SASL.java:379)
> - locked <0x000000078b1d97c8> (a org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL)
> at org.apache.qpid.server.protocol.v1_0.ProtocolEngine_1_0_0_SASL.received(ProtocolEngine_1_0_0_SASL.java:66)
> at org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:153)
> at org.apache.qpid.server.protocol.MultiVersionProtocolEngine.received(MultiVersionProtocolEngine.java:51)
> at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:161)
> at java.lang.Thread.run(Thread.java:724)
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org