[ https://issues.apache.org/jira/browse/AMQ-5273?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jesse Fugitt updated AMQ-5273: ------------------------------ Attachment: org.apache.activemq.transport.amqp.AMQ5273Test-output.txt amqp_connection_race.patch AMQ5273Test.java Attached git diff and unit test. See comments in unit test source code for how this was run with maven to reproduce. > Problem handling connections from multiple AMQP clients in ActiveMQ > ------------------------------------------------------------------- > > Key: AMQ-5273 > URL: https://issues.apache.org/jira/browse/AMQ-5273 > Project: ActiveMQ > Issue Type: Bug > Components: AMQP > Affects Versions: 5.10.0 > Reporter: Jesse Fugitt > Priority: Critical > Labels: AMQP > Attachments: AMQ5273Test.java, amqp_connection_race.patch, > org.apache.activemq.transport.amqp.AMQ5273Test-output.txt > > > When multiple AMQP clients try to connect to the broker at exactly the same > time, the broker can end up in a state where it gets an AMQP parsing error > during the connection handshake and then all future AMQP connections fail > until the broker is stopped. This was reproduced with C proton clients and > QPID JMS clients but it seemed to depend on the speed of the machine where > the broker was running and the network speed to ensure that the timing window > would be hit. Turning on remote debugging in the ActiveMQ startup script > made it happen much more frequently. The QPID JMS clients end up staying > hung in the ConnectionEndpoint.open function and the C proton clients return > a SASL error. Code analysis in the broker appeared to point to an incorrect > use of static for the list data structure in the AMQPProtocolDiscriminator > class. I am planning to attach a patch and unit test that demonstrate the > behavior as well as some logs. The unit test fails with a "timeout" as all > of the threads get hung when attempting to make connection and seems to > require the following MAVEN_OPTS to be set to see it fail consistently: > export > MAVEN_OPTS="-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005" > When running the broker in console mode, the following would be output for > each failed client connection attempt: > Could not decode AMQP frame: hex: > 0000002102010000005341d00000001100000002a309414e4f4e594d4f5553a000 -- This message was sent by Atlassian JIRA (v6.2#6252)