[jboss-jira] [JBoss JIRA] (JGRP-1498) Deadlock in SEQUENCER

David Hotham (JIRA) jira-events at lists.jboss.org
Sat Jul 28 09:17:06 EDT 2012


David Hotham created JGRP-1498:
----------------------------------

             Summary: Deadlock in SEQUENCER
                 Key: JGRP-1498
                 URL: https://issues.jboss.org/browse/JGRP-1498
             Project: JGroups
          Issue Type: Bug
    Affects Versions: 3.1
            Reporter: David Hotham
            Assignee: Bela Ban


I've just seen a deadlock in SEQUENCER, which I think occurs as follows:

-  Start of day.  coord=null, ack_mode=true, flushing=false.
-  First view arrives.  We call handleView(), and start a Flusher
-  On the Flusher thread, flush() gets as far as waiting to acquire the send_lock, but doesn't yet have it.
-  Meanwhile on Thread 2, the application tries broadcasting a message.  This gets as far as the trace "forwarding my-address::1 to coord null", but does not yet enter forwardToCoord().
-  Now on Thread 3, a second view arrives.  handleViewChange() finds that coord_changed is true, and calls stopFlusher().  This sets flushing=false.
-  Now Thread 2 picks up.  flushing=false, ack_mode=true; so forwardToCoord() gets as far as acquiring the send_lock.
-  Now Thread 2 loops around making no progress.  forward() always drops the message, because coord is null.  The send_lock is never relinquished
-  So the Flusher thread can never acquire the send_lock, and the Flusher can't exit
-  And so Thread 3 is stuck too, in stopFlusher().

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list