activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rob Davies (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (AMQ-1119) Deadlock in MutexTransport on shutdown with high volume of messages
Date Sat, 06 Jan 2007 21:17:48 GMT

     [ https://issues.apache.org/activemq/browse/AMQ-1119?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Rob Davies resolved AMQ-1119.
-----------------------------

       Resolution: Fixed
    Fix Version/s: 4.2.0

Fixed by SVN revision 493573

> 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
>             Fix For: 4.2.0
>
>
> 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

        

Mime
View raw message