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