Qpid
  1. Qpid
  2. QPID-2703

Transaction Rollback/Recover does not restore consumer credit

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.6, 0.8, 0.10, 0.12
    • Fix Version/s: 0.14
    • Component/s: Java Broker
    • Labels:
      None

      Description

      When a transaction rollback/recover occurs on the 0-8/0-9/0-91 code path the messages are put back on to the queue but the subscriber is not credited for them. This can be seen with a small prefetch. The credit is lost and the client starves. Adding a restoreCredit call in the message release will address this issue.

      The same issue exists in 0-10 code path but for different reasons. On 0-10, a client is required to complete commands. The Java client currently fails to complete the message.transfer commands that correspond to those messages that must be returned to the Broker due to the rollback/recover and for this reason the Brokers are failing to recredit. This problem is evident when using the Java Broker, but is masked when using the CPP Broker (by a credit window issue that results in the Broker expanding credit window beyond the requested limit).

        Issue Links

          Activity

          Hide
          Martin Ritchie added a comment -

          This change was only applied to the 0.5.x-dev branch. It needs to be merged to trunk.

          Show
          Martin Ritchie added a comment - This change was only applied to the 0.5.x-dev branch. It needs to be merged to trunk.
          Hide
          Keith Wall added a comment -

          Updated description to describe the same issue on the 0-10 path.

          Show
          Keith Wall added a comment - Updated description to describe the same issue on the 0-10 path.
          Hide
          Rajith Attapattu added a comment -

          Part of the reason is in the java client completions are tied to accepts.
          See https://reviews.apache.org/r/2853/

          Show
          Rajith Attapattu added a comment - Part of the reason is in the java client completions are tied to accepts. See https://reviews.apache.org/r/2853/
          Hide
          Rajith Attapattu added a comment -

          I think this is a good short term fix for the 0.14 release.
          The patch I've worked on is for trunk development and targeted at 0.16

          Show
          Rajith Attapattu added a comment - I think this is a good short term fix for the 0.14 release. The patch I've worked on is for trunk development and targeted at 0.16
          Hide
          Justin Ross added a comment -

          Reviewed by Rajith. Approved for 0.14.

          Show
          Justin Ross added a comment - Reviewed by Rajith. Approved for 0.14.
          Hide
          Robbie Gemmell added a comment -

          Merged to 0.14 release branch.

          Show
          Robbie Gemmell added a comment - Merged to 0.14 release branch.

            People

            • Assignee:
              Keith Wall
              Reporter:
              Martin Ritchie
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development