[ https://issues.apache.org/activemq/browse/AMQ-771?page=all ]
james strachan reassigned AMQ-771:
----------------------------------
Assignee: Rob Davies
> org.apache.activemq.broker.TransportConnection::stop should not attempt to
> send a message over the connection.
> --------------------------------------------------------------------------------------------------------------
>
> Key: AMQ-771
> URL: https://issues.apache.org/activemq/browse/AMQ-771
> Project: ActiveMQ
> Issue Type: Bug
> Components: Connector
> Affects Versions: 4.0, 4.0.1
> Reporter: Kevin Yaussy
> Assigned To: Rob Davies
>
> Especially when using "failover", there can be a problem with respect to
> TransportConnection::stop attempting to send a "shutdown" message over the
> connection. If another thread is sending messages to the connection, and it
> gets stuck for some reason, such as a network freeze, the target machine
> panics, or the target process freezes for some reason, the
> TransportConnection::dispatch will eventually block, locking the
> MutextTransport object. When the InactivityMonitor wakes up and detects that
> the connection is dead, it will go through the process of stopping the
> connection. This goes back into TransportConnection, and calls stop, which
> attemtps to lock the MutexTransport so it can send the "shutdown" command.
> Now, both threads are stuck, potentially for a long time, as a box panic will
> not cleanly close the tcp connection.
> I'm not sure the rationale for wanting to send a shutdown command to the
> other side of the connection, since the target has to handle the connection
> going down hard anyway. Seems to me, if you are intending on closing the
> connection, just close it - don't try to be nice to the other side.
> Especially in this code path, there is something wrong with the other side
> anyway.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira