Bug 653923
| Summary: | C++ Client does not set "redelivered" flag on retransmitted messages | ||
|---|---|---|---|
| Product: | Red Hat Enterprise MRG | Reporter: | Ted Ross <tross> |
| Component: | qpid-cpp | Assignee: | Gordon Sim <gsim> |
| Status: | CLOSED ERRATA | QA Contact: | ppecka <ppecka> |
| Severity: | medium | Docs Contact: | |
| Priority: | urgent | ||
| Version: | 1.3 | CC: | 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: | |||
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 |
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.