Bug 667172

Summary: JMS Client does not set "redelivered" flag on retransmitted messages
Product: Red Hat Enterprise MRG Reporter: Gordon Sim <gsim>
Component: qpid-javaAssignee: Rajith Attapattu <rattapat+nobody>
Status: CLOSED ERRATA QA Contact: ppecka <ppecka>
Severity: medium Docs Contact:
Priority: urgent    
Version: 1.3CC: iboverma, jneedle, jross, ppecka
Target Milestone: 2.0   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qpid-java-0.9.1080013 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-06-23 15:44:30 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 Gordon Sim 2011-01-04 18:01:48 UTC
Description of problem:

When a JMS client fails over it will replay in doubt messages. These replayed messages should have the redelivered flag set on them.

Steps to Reproduce:
1. send stream of messages via jms client
2. trigger failover mid-stream
3. verify that the queue to which stream was directed has all messages at-least-once; there should be some duplicates and in all cases the ater copies of those duplicates should have redelivered set to true.
  
Actual results:

redelivered is not set to true for duplicates.

Additional info:

See also bugs 640618 and 653923.

Comment 1 Rajith Attapattu 2011-01-11 15:13:33 UTC
This is covered in upstream by QPID-2995
I have committed a fix in upstream at rev 1057462 in Qpid trunk.

The impact of the change is isolated within the resume method in Sesion.java and has no impact on other functionality.

As pasted below, when we replay (MessageTransfers we set the redelivered flag.

+                else if (m instanceof MessageTransfer)
+                {
+                    ((MessageTransfer)m).getHeader().get(DeliveryProperties.class).setRedelivered(true);
+                }

Could we include this in MRG 1.3.2 ? or roll it into MRG 2.0  as scheduled ?

Comment 3 ppecka 2011-04-29 14:09:37 UTC
VERIFIED RHEL5 / RHEL6 both i386 / x86_64

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

java-1.6.0-openjdk-devel-1.6.0.0-1.39.1.9.7.el6.x86_64

-->VERIFIED

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