[ 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