Session#close() should not wait forever if broker fails to respond to channel
close (0-8..0-9-1 protocols)
----------------------------------------------------------------------------------------------------------
Key: QPID-3903
URL: https://issues.apache.org/jira/browse/QPID-3903
Project: Qpid
Issue Type: Bug
Components: Java Client
Affects Versions: 0.14, 0.12, 0.10, 0.8, 0.6, 0.16
Reporter: Keith Wall
For the 0-8..0-9-1 protocols, if the broker fails to respond to a channel close
command (for whatever reason), the client thread hangs forever. This is
because AMQSession#close() uses a timeout value of -1, which is interpreted by
BlockingWaiter as a indefinite wait.
Uses of the 0-10 protocol are unaffected by this defect.
{code}
- parking to wait for <1f004f3> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
at
org.apache.qpid.client.util.BlockingWaiter.block(BlockingWaiter.java:168)
at
org.apache.qpid.client.protocol.BlockingMethodFrameListener.blockForFrame(BlockingMethodFrameListener.java:127)
at
org.apache.qpid.client.protocol.AMQProtocolHandler.writeCommandFrameAndWaitForReply(AMQProtocolHandler.java:686)
at
org.apache.qpid.client.protocol.AMQProtocolHandler.syncWrite(AMQProtocolHandler.java:707)
at
org.apache.qpid.client.AMQSession_0_8.sendClose(AMQSession_0_8.java:162)
at org.apache.qpid.client.AMQSession.close(AMQSession.java:723)
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
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]