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.
See also bugs 667172 and 640618.
Fixed upstream: http://svn.apache.org/viewvc?rev=1074611&view=rev
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.
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.
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
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