[
https://issues.apache.org/jira/browse/QPID-3498?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Keith Wall updated QPID-3498:
-----------------------------
Summary: Broker race condition means that it tries to respond before
IoSender thread is running (was: Broker race condition mean that it tries to
respond before IoSender thread is running)
> Broker race condition means that it tries to respond before IoSender thread
> is running
> --------------------------------------------------------------------------------------
>
> Key: QPID-3498
> URL: https://issues.apache.org/jira/browse/QPID-3498
> Project: Qpid
> Issue Type: Bug
> Components: Java Broker
> Reporter: Keith Wall
> Assignee: Keith Wall
> Fix For: 0.13
>
>
> Since the removal of Mina from the transport layer, we've been seeing
> sporadic failures from the java-mms-spawn.0-9-1 profile on an old slow CI
> server.
> Tests are failing with the following exception whilst the client is
> attempting to negotiate downwards from 0-10 to 0-9-1 protocol during
> connection:
> {code}
> main 2011-09-21 14:27:09,139 INFO [apache.qpid.client.AMQConnection] Unable
> to connect to broker at tcp://localhost:15672
> org.apache.qpid.AMQException: Cannot connect to broker: connect() aborted
> [error code 200: reply success]
> at
> org.apache.qpid.client.AMQConnectionDelegate_0_10.makeBrokerConnection(AMQConnectionDelegate_0_10.java:218)
> at
> org.apache.qpid.client.AMQConnection.makeBrokerConnection(AMQConnection.java:565)
> at org.apache.qpid.client.AMQConnection.<init>(AMQConnection.java:351)
> at
> org.apache.qpid.client.AMQConnectionFactory.createConnection(AMQConnectionFactory.java:132)
> at
> org.apache.qpid.client.AMQConnectionFactory.createConnection(AMQConnectionFactory.java:111)
> at
> org.apache.qpid.test.utils.QpidBrokerTestCase.getConnection(QpidBrokerTestCase.java:1056)
> at
> org.apache.qpid.test.unit.basic.LargeMessageTest.setUp(LargeMessageTest.java:52)
> at junit.framework.TestCase.runBare(TestCase.java:125)
> at
> org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:238)
> at junit.framework.TestResult$1.protect(TestResult.java:106)
> at junit.framework.TestResult.runProtected(TestResult.java:124)
> {code}
> Analysis has shown that when the problem occurs, the broker tries to write
> the highest supported protocol version number to the wire, but these bytes
> never make it to the wire (see MultiVersionProtocolEngine#received() lines
> 409-414). The reason for this is a race condition: there is an unlucky
> timing where the broker may begin responding to incoming frames *before* it
> has started the IoSender thread.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]