[ 
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)

Reply via email to