Qpid
  1. Qpid
  2. QPID-3165

queue Runner may cease early during asynchronous delivery to multiple subscriptions when using selectors

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: M4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.10
    • Fix Version/s: 0.11
    • Component/s: Java Broker
    • Labels:
      None

      Description

      The SimpleAMQQueue#processQueue() method is used by the queue Runner to asynchronously deliver messages on the queue to consumers when immediate delivery isn't possible, e.g. due to competing producers, and the subscriptions own SubFlushRunner is not active.

      A defect in this method means that when multiple subscriptions are present and selectors are in use it is possible for the queue Runner to terminate early, leaving messages on the queue that one of more subscriptions are actually be able to accept. Unless the subscriptions SubFlushRunner is running (which will not occur again for an existing subscription once affected by this defect has presented itself) these messages will remain on the queue until 'pushed off', possibly one by one, due to the arrival of a new message invoking the queue Runner again.

        Activity

          People

          • Assignee:
            Keith Wall
            Reporter:
            Robbie Gemmell
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development