[ https://issues.apache.org/activemq/browse/AMQ-771?page=comments#action_36777 ] Kevin Yaussy commented on AMQ-771: ----------------------------------
Rob, This issue is a bit more complex than I've noted above. I've been out for a week, but prior to leaving I got a version (based upon 4.0.1) working. I will submit comments and patches sometime today, hopefully. > 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
