ViewHandler leaves unprocessed tasks in a queue during shutdown
---------------------------------------------------------------
Key: JGRP-488
URL:
http://jira.jboss.com/jira/browse/JGRP-488
Project: JGroups
Issue Type: Bug
Affects Versions: 2.4.1 SP2, 2.4.1, 2.4, 2.3, 2.5
Reporter: Vladimir Blagojevic
Assigned To: Vladimir Blagojevic
Fix For: 2.4.1 SP3, 2.5
When coordinator leaves (CoordGmsImpl#leave) it puts LEAVE request in the queue, and then
it calls stop(true) on view handler. This in turn flips boolean closed of the queue to
true - the same boolean that is checked in ViewHandler#run while statement.
If ViewHandler happens to be processing requests in ViewHandler#process(List requests)
when LEAVE gets enqueued then ViewHandler promptly exists (due to boolean q.isClosed() in
while statement) without actually processing pending LEAVE or other requests!
We should use while(true) in ViewHandler#run and have ViewHandler die gracefully once it
pops out poison pill (end marker) and throws QueueClosedException.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira