Bug 674631

Summary: After Rejections No Messages Received
Product: Red Hat Enterprise MRG Reporter: Chris Pitman <christopher.pitman>
Component: qpid-cppAssignee: Gordon Sim <gsim>
Status: CLOSED ERRATA QA Contact: Petr Matousek <pematous>
Severity: high Docs Contact:
Priority: unspecified    
Version: DevelopmentCC: gsim, jeder, jneedle, jross, pematous
Target Milestone: 2.0   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: qpid-cpp-0.9.1079953 Doc Type: Bug Fix
Doc Text:
Cause: For subscriptions using a broker managed credit window, this window was sometimes not moved forward correctly in the presence of rejected messages . Consequence: Sessions rejecting messages could stall and not get further messages even if there were messages available on the queue they were subscribed to. Fix: Ensure credit window is always moved correctly for rejected messages. Result: Session rejecting messages continue to get messages as expected.
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-06-23 15:43:16 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
Source for reproducing hang none

Description Chris Pitman 2011-02-02 18:19:07 UTC
Created attachment 476625 [details]
Source for reproducing hang

Description of problem:
After a receiver rejects some number of messages, no additional messages are received by the receiver even though messages are on the queue.

A simple program is attached which demostrates the issue.

Version-Release number of selected component (if applicable):
qpid-cpp-client-devel-0.7.946106-24_ptc_hotfix_2.el5
qpid-cpp-mrg-debuginfo-0.7.946106-24_ptc_hotfix_2.el5
qpid-cpp-server-cluster-0.7.946106-24_ptc_hotfix_2.el5
qpid-cpp-server-store-0.7.946106-24_ptc_hotfix_2.el5
qpid-cpp-server-rdma-0.7.946106-24_ptc_hotfix_2.el5
qpid-cpp-server-devel-0.7.946106-24_ptc_hotfix_2.el5
qpid-cpp-client-ssl-0.7.946106-24_ptc_hotfix_2.el5
qpid-cpp-client-0.7.946106-24_ptc_hotfix_2.el5
qpid-cpp-server-ssl-0.7.946106-24_ptc_hotfix_2.el5
qpid-cpp-client-devel-docs-0.7.946106-24_ptc_hotfix_2.el5
qpid-cpp-client-rdma-0.7.946106-24_ptc_hotfix_2.el5
qpid-cpp-server-0.7.946106-24_ptc_hotfix_2.el5

How reproducible:
Easily

Steps to Reproduce:
1. Start a broker on port 5673 (or modify script)
2. Compile and run attached script
3.
  
Actual results:
5 Messages are sent, 5 Messages are received and rejected.  5 more messages are sent, only 2 messages are received and rejected.  The program hangs waiting for another message to be received.

Expected results:
10 messages are sent and 10 messages are received.  The example terminates.


Additional info:

Comment 1 Gordon Sim 2011-02-21 17:32:11 UTC
Fixed upstream: http://svn.apache.org/viewvc?view=revision&revision=1073085

Comment 2 Gordon Sim 2011-02-24 11:50:01 UTC
Fix available in https://brewweb.devel.redhat.com/buildinfo?buildID=157935

Comment 3 Gordon Sim 2011-03-07 14:52:35 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause:
For subscriptions using a broker managed credit window, this window was sometimes not moved forward correctly in the presence of rejected messages .

Consequence:
Sessions rejecting messages could stall and not get further messages even if there were messages available on the queue they were subscribed to.

Fix:
Ensure credit window is always moved correctly for rejected messages.

Result:
Session rejecting messages continue to get messages as expected.

Comment 4 Petr Matousek 2011-04-06 13:56:01 UTC
This issue has been fixed

Verified on RHEL4.9, RHEL5.6 and RHEL6.1, architectures: i386, x86_64

packages installed:
qpid-cpp-client-devel-docs-0.10-1.el5
qpid-cpp-server-devel-0.10-1.el5
qpid-cpp-server-xml-0.10-1.el5
qpid-cpp-server-0.10-1.el5
qpid-cpp-client-ssl-0.10-1.el5
qpid-cpp-server-store-0.10-1.el5
qpid-cpp-server-cluster-0.10-1.el5
qpid-cpp-client-0.10-1.el5
qpid-cpp-client-devel-0.10-1.el5
qpid-cpp-server-ssl-0.10-1.el5

-> VERIFIED

Comment 5 errata-xmlrpc 2011-06-23 15:43:16 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHEA-2011-0890.html