Qpid
  1. Qpid
  2. QPID-3546

client can reject/release up to the first <total number of messages received on the session> sent by the broker following the first rollback after failover

    Details

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

      Description

      The Java client can reject/release up to the first <total number of messages received on the session> sent by the broker following the first rollback after failover.

      When failover occurs, the rollback mark is set to -1 however the highestDeliveryTag is not cleared, and so upon the first rollback performed after failover this will set the rollback mark to <highestDeliveryTag>, which is either the number of messages received by the Session (0-8/0-9/0-9-1) or anything up to that value (0-10, where the message delivery tags are the per-connection command IDs associated with each MessageTransfer, and all other commands). This makes the client reject/release all incoming messages until the deliveryTag passes the rollback mark and the messages are allowed through the Dispatcher.

      This could cause significant delays in message processing after failover, and may result in messages arriving out of order because earlier rejects/release get processed by the broker and cause it to re-dispatch earlier messages on the queue within the ongoing flow of later messages just being sent for the first time.

      The deliveryTag marker should also be reset during the failover cleanup process.

        Activity

        Robbie Gemmell created issue -
        Alex Rudyy made changes -
        Field Original Value New Value
        Assignee Alex Rudyy [ alex.rufous ]
        Alex Rudyy made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Hide
        Alex Rudyy added a comment -

        Attached a patch fixing the issue on 0-10 path.

        Show
        Alex Rudyy added a comment - Attached a patch fixing the issue on 0-10 path.
        Alex Rudyy made changes -
        Attachment fix-of-message-rejection-issue.patch [ 12498873 ]
        Robbie Gemmell made changes -
        Assignee Alex Rudyy [ alex.rufous ] Robbie Gemmell [ gemmellr ]
        Robbie Gemmell made changes -
        Status In Progress [ 3 ] Open [ 1 ]
        Hide
        Robbie Gemmell added a comment -

        Patch applied. Only fixed on the 0-10 client path, as fixing this on the 0-8/9/9-1 path currently would cause undesirable interaction with the issue in QPID-3521, which will be updated to mention this should be fixed for the 0-8/9/9-1 path along with that issue.

        Show
        Robbie Gemmell added a comment - Patch applied. Only fixed on the 0-10 client path, as fixing this on the 0-8/9/9-1 path currently would cause undesirable interaction with the issue in QPID-3521 , which will be updated to mention this should be fixed for the 0-8/9/9-1 path along with that issue.
        Robbie Gemmell made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development