Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 653923

Summary: C++ Client does not set "redelivered" flag on retransmitted messages
Product: Red Hat Enterprise MRG Reporter: Ted Ross <tross>
Component: qpid-cppAssignee: Gordon Sim <gsim>
Status: CLOSED ERRATA QA Contact: ppecka <ppecka>
Severity: medium Docs Contact:
Priority: urgent    
Version: 1.3CC: gsim, jneedle, jross, ppecka
Target Milestone: 2.0   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qpid-cpp-0.9.1079953 Doc Type: Bug Fix
Doc Text:
Cause What actions or circumstances cause this bug to present. Consequence Messages replayed by the c++ client will not have the redelivered flag set Fix The replay routine in the c++ client was modified to correctly set the redelivered header Result Replayed messages now have the redelivered flag set.
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-06-23 15:44: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:
Embargoed:

Description Ted Ross 2010-11-16 13:59:13 UTC
Description of problem:

When a connection is created with "reconnect:True", it will retransmit unacknowledged messages on reconnect.  These retransmitted messages should have their "redelivered" header set but do not.

Version-Release number of selected component (if applicable):  MRG-M 1.3
How reproducible:  100%

Steps to Reproduce:

Use the "list_agents" example in SVN (in cpp/bindings/qmf2/examples/cpp).

$ EXPORT QPID_TRACE=1
$ list_agents localhost '{reconnect:True}'

After the app connects to the broker, restart the broker.
  
Actual results:

Viewing the trace, look at last instance of "MessageTransferBody".  The DeliveryProperties map does not contain a "redelivered" header.

Expected results:

There should be a redlivered header.

Comment 1 Gordon Sim 2011-01-04 18:03:41 UTC
See also bugs 667172 and 640618.

Comment 2 Gordon Sim 2011-02-25 16:39:28 UTC
Fixed upstream: http://svn.apache.org/viewvc?rev=1074611&view=rev

Comment 3 Gordon Sim 2011-02-25 16:43:09 UTC
Simple test:

1. start two node cluster
2. run qpid-send --connection-options '{reconnect:true}' --messages 10000 --send-eos 1 --sequence true --address 'my-queue; {create: always}'
3. *while this is running* kill the node it is connected to to trigger failover
4. run qpid-receive --ignore-duplicates --check-redelivered --address my-queue

Bug exhibits by the qpid-receive test reporting a duplicate message that does not have the redelivered flag set.

Comment 4 Gordon Sim 2011-02-25 16:45:01 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
    What actions or circumstances cause this bug to present.
Consequence
    Messages replayed by the c++ client will not have the redelivered flag set

Fix
    The replay routine in the c++ client was modified to correctly set the redelivered header

Result
    Replayed messages now have the redelivered flag set.

Comment 6 ppecka 2011-05-02 09:38:27 UTC
VERIFIED on RHEL 5 / RHEL 6 both i386 / x86_64

# rpm -qa | grep qpid
qpid-java-common-0.10-4.el6.noarch
qpid-java-jca-0.10-4.el6.noarch
qpid-cpp-client-0.10-3.el6.i686
qpid-cpp-client-ssl-0.10-3.el6.i686
qpid-cpp-client-devel-0.10-3.el6.i686
qpid-cpp-server-rdma-0.10-3.el6.i686
ruby-qpid-qmf-0.10-6.el6.i686
qpid-qmf-devel-0.10-6.el6.i686
qpid-tools-0.10-3.el6.noarch
qpid-java-client-0.10-4.el6.noarch
qpid-cpp-server-0.10-3.el6.i686
qpid-cpp-server-xml-0.10-3.el6.i686
qpid-cpp-server-cluster-0.10-3.el6.i686
qpid-cpp-server-devel-0.10-3.el6.i686
python-qpid-0.10-1.el6.noarch
qpid-java-example-0.10-4.el6.noarch
qpid-qmf-0.10-6.el6.i686
python-qpid-qmf-0.10-6.el6.i686
qpid-cpp-server-store-0.10-3.el6.i686
qpid-cpp-client-devel-docs-0.10-3.el6.noarch
qpid-cpp-client-rdma-0.10-3.el6.i686
qpid-cpp-server-ssl-0.10-3.el6.i686
rh-qpid-cpp-tests-0.10-3.el6.i686
qpid-tests-0.10-1.el6.noarch


--> VERIFIED

Comment 7 errata-xmlrpc 2011-06-23 15:44: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