[ https://issues.apache.org/activemq/browse/AMQ-1119?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rob Davies reassigned AMQ-1119: ------------------------------- Assignee: Rob Davies > Deadlock in MutexTransport on shutdown with high volume of messages > ------------------------------------------------------------------- > > Key: AMQ-1119 > URL: https://issues.apache.org/activemq/browse/AMQ-1119 > Project: ActiveMQ > Issue Type: Bug > Components: Transport > Affects Versions: 4.0, 4.0.1, 4.0.2 > Environment: Windows XP, demand forwarding, failover == true > Reporter: Chris Hofstaedter > Assigned To: Rob Davies > > I ran into a deadlock in the MutextTransport.oneway(Command command) function > when processing very high message volume (100% cpu utilization) at the time > of a shutdown. I'm running 4.0.2 on WinXP and within a demand forwarding > environment with failover = true. > > I did trap this deadlock in the debugger and it looks like two commands are > crossing paths in opposite directions through the MutexTransport. One of the > commands is a MessageDispatch and the other is a ShutdownInfo. Now, when the > ShutdownInfo gets through the MutexTransport first, it tries to shutdown the > background thread of the TcpTransport. However, this thread is currently > servicing the MessageDispatch and is blocked on the MutexTransport. Deadlock. > > So, my patch was simply to avoid entering the synchronized(writeMutex) block > in the oneway(Command command) function of MutexTransport if > command.isShutdownInfo() returns true: > > if (command.isShutdownInfo()) > next.oneway(command); > else > synchronized(writeMutex) { > next.oneway(command); > } -- 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