Bug 653923 - C++ Client does not set "redelivered" flag on retransmitted messages
Summary: C++ Client does not set "redelivered" flag on retransmitted messages
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp
Version: 1.3
Hardware: Unspecified
OS: Unspecified
urgent
medium
Target Milestone: 2.0
: ---
Assignee: Gordon Sim
QA Contact: ppecka
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-11-16 13:59 UTC by Ted Ross
Modified: 2011-08-12 16:20 UTC (History)
4 users (show)

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.
Clone Of:
Environment:
Last Closed: 2011-06-23 15:44:16 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2011:0890 0 normal SHIPPED_LIVE Red Hat Enterprise MRG Messaging 2.0 Release 2011-06-23 15:42:41 UTC

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


Note You need to log in before you can comment on or make changes to this bug.