Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-7394

[0-8..0-91] Prefetch accounting incorrect when session rolled back / recovered

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.32, qpid-java-6.0, qpid-java-6.0.4
    • qpid-java-6.0.5, qpid-java-6.1
    • JMS AMQP 0-x
    • None

    Description

      When the application calls Session#receive(), the client will automatically open the prefetch window by 1 message if necessary (QPID-6088). On committing the received message, the client takes care to revert the prefetch level back to the session's default value. However, if the application calls rollback, the client fails to account for the increased credit, so when the application calls #receive again, the prefetch window will be opened further.

      If the downstream application experiences some kind of failure meaning it rolls back every message, this could potentially lead to the prefetch buffer growing large. If the queue is deep, this could cause excessive network utilisation (as large numbers of messages are continually received/rejected) and excessive memory use on the client.

      This defect also allows a Broker defect to manifest - QPID-7387.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              kwall Keith Wall
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: