Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-3165

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

    Details

    • Type: Bug
    • Status: Closed
    • Priority: 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: Broker-J
    • 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.

        Attachments

          Activity

            People

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

              Dates

              • Created:
                Updated:
                Resolved: