activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jesse Fugitt (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (AMQ-5273) Problem handling connections from multiple AMQP clients in ActiveMQ
Date Thu, 10 Jul 2014 22:08:05 GMT

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

Mime
View raw message