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

        Gary Tully created issue -
        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.
        Gary Tully made changes -
        Field Original Value New Value
        Attachment amq1714.patch [ 16412 ]
        Rob Davies made changes -
        Assignee Rob Davies [ rajdavies ]
        Hide
        Rob Davies added a comment -

        Patch applied in SVN revision 655805

        Show
        Rob Davies added a comment - Patch applied in SVN revision 655805
        Rob Davies made changes -
        Resolution Fixed [ 1 ]
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s 5.2.0 [ 11841 ]
        Gary Tully made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Jeff Turner made changes -
        Project Import Fri Nov 26 22:32:02 EST 2010 [ 1290828722158 ]

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development