[
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