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

[Java Broker] On abrupt connection close from client side when Broker is delivering messages to consumer the delivered messages might not be released as part of close in some unlucky circumstances

    XMLWordPrintableJSON

Details

    Description

      With current implementation consumer acquired messages are put into intermediate queue on ConsumerTarget before putting them into wire. The registering of those messages as unacknowledged with session happens letter. When TCP connection is get closed between message being put into a ConsumerTarget queue and registering of it on session as unacknowledged, such message cannot be released as part of session close and can continue remain in ACQUIRED state blocking the queue message flow. Only Broker restart can remediate the issue.

      It seems we can fix the issue by introducing a method on a ConsumerTarget to iterate over the messages stored in intermediate queue and call release method on them. The method shall be invoked as part of ConsumerTarget close.

      Attachments

        Activity

          People

            Unassigned Unassigned
            orudyy Alex Rudyy
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: