ActiveMQ
  1. ActiveMQ
  2. AMQ-1714

messages get dispatched to a removed consumer, locked and remain unavailable - appear as missing

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 5.1.0
    • Fix Version/s: 5.2.0
    • Component/s: Broker
    • Labels:
      None
    • Patch Info:
      Patch Available

      Description

      with failover transport. multiple non persistent producers and consumers on a single queue and transport disconnects, it is possible for a messages to get dispatched to a removed subscription or consumer. These messages are locked and hence cannot get dispatched to new consumers when the network ins reconnected. From a consumer perspective it looks like there are missing messages.

      The problem occurs is messages are being dispatched while subscription removal occurring. The list of consumers is modified, inflight messages are removed from the subscription, unlocked and re dispatched. However, dispatch of messages is not synchronised with this removal and it is possible to dispatch to a removed consumer. Any such messages will be locked and never re dispatched.

      1. amq1714.patch
        15 kB
        Gary Tully

        Activity

        Hide
        Gary Tully added a comment -

        this patch provides a test case that shows the problem and a fix that adds additional synchronisation to the queue dispatch method.
        removing a subscription needs to be synchronized with the use of subscriptions. This seems to be the intended use of dispatchLock but up till now dispatch() does not lock dispatchLock.

        Show
        Gary Tully added a comment - this patch provides a test case that shows the problem and a fix that adds additional synchronisation to the queue dispatch method. removing a subscription needs to be synchronized with the use of subscriptions. This seems to be the intended use of dispatchLock but up till now dispatch() does not lock dispatchLock.
        Hide
        Rob Davies added a comment -

        Patch applied in SVN revision 655805

        Show
        Rob Davies added a comment - Patch applied in SVN revision 655805

          People

          • Assignee:
            Rob Davies
            Reporter:
            Gary Tully
          • Votes:
            1 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development