Qpid
  1. Qpid
  2. QPID-3821

Uncaught exception thrown in QueueRunner and SubFlushRunner run() could cause them to remain stuck in RUNNING state permanently

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.15
    • Fix Version/s: 0.15
    • Component/s: Java Broker
    • Labels:
      None

      Description

      The QueueRunner.run() method calls SimpleAMQQueue.processQueue(...) method within a try/catch block. If this threw an exception that was not caught then the state of the QueueRunner is never set back to IDLE or SCHEDULED.

      The same pattern is present in the SubFlushRunner.run().

      The code at the end of the method should be moved into the finally block to prevent this from happening.

        Activity

        Andrew MacBean created issue -
        Andrew MacBean made changes -
        Field Original Value New Value
        Status Open [ 1 ] In Progress [ 3 ]
        Andrew MacBean made changes -
        Attachment 0001-QPID-3821-Uncaught-exception-thrown-in-QueueRunner.r.patch [ 12513801 ]
        Andrew MacBean made changes -
        Status In Progress [ 3 ] Ready To Review [ 10006 ]
        Andrew MacBean made changes -
        Assignee Andrew MacBean [ macbean ] Keith Wall [ k-wall ]
        Andrew MacBean made changes -
        Summary Uncaught exception thrown in QueueRunner.run() could cause QueueRunner to remain stuck in RUNNING state permanently Uncaught exception thrown in QueueRunner and SubFlushRunner run() could cause them to remain stuck in RUNNING state permanently
        Description The QueueRunner.run() method calls SimpleAMQQueue.processQueue(...) method within a try/catch block. If this threw an exception that was not caught then the state of the QueueRunner is never set back to IDLE or SCHEDULED.

        The code at the end of the method should be moved into the finally block to prevent this from happening.
        The QueueRunner.run() method calls SimpleAMQQueue.processQueue(...) method within a try/catch block. If this threw an exception that was not caught then the state of the QueueRunner is never set back to IDLE or SCHEDULED.

        The same pattern is present in the SubFlushRunner.run().

        The code at the end of the method should be moved into the finally block to prevent this from happening.
        Andrew MacBean made changes -
        Attachment 0001-QPID-3821-Uncaught-exception-thrown-in-QueueRunner.r.patch [ 12513801 ]
        Andrew MacBean made changes -
        Keith Wall made changes -
        Status Ready To Review [ 10006 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Rob Godfrey made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Keith Wall
            Reporter:
            Andrew MacBean
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development