Uploaded image for project: 'JGroups'
  1. JGroups
  2. JGRP-488

ViewHandler leaves unprocessed tasks in a queue during shutdown

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 2.4.1 SP3, 2.5
    • 2.3, 2.4, 2.4.1, 2.4.1 SP2, 2.5
    • None

      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.

            vblagoje Vladimir Blagojevic (Inactive)
            vblagoje Vladimir Blagojevic (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: