Uploaded image for project: 'ActiveMQ'
  1. ActiveMQ
  2. AMQ-7218

STOMP: V1.2 client that acks inside a TX can lose ability to ack after TX abort

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.15.9
    • Fix Version/s: 5.15.10, 5.16.0
    • Component/s: STOMP
    • Labels:
      None

      Description

      When acknowledgement occurs inside a transaction it is valid for the TX to be aborted and the messages to be acknowledged a second time in a new TX or on their own.  The broker currently loses track of the acks that are removed from the pending Acks index as it doesn't recover them on abort and repopulate the pending index. 

      There is also a race that occurs on dispatch and ack that allows for loss of ack Ids as the current code clears the full pending index on either boundary when it should only be removing the involved transactionally enlisted messages.

        Attachments

        Issue Links

          Activity

            People

            • Assignee:
              tabish Timothy A. Bish
              Reporter:
              tabish Timothy A. Bish

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment