Jesse Fugitt created AMQ-5273:
---------------------------------
Summary: 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
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)