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
        Type: Bug

  Components: Connector  
    Versions: 4.0.1, 4.0    
    Reporter: Kevin Yaussy


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

Reply via email to