Bug 1089362

Summary: messages re-apear after failover, xa, non-durable
Product: Red Hat Enterprise MRG Reporter: Valiantsina Hubeika <vhubeika>
Component: qpid-jcaAssignee: messaging-bugs <messaging-bugs>
Status: NEW --- QA Contact: MRG Quality Engineering <mrgqe-bugs>
Severity: unspecified Docs Contact:
Priority: medium    
Version: DevelopmentCC: jross, mtoth
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
output of the applicaitons none

Description Valiantsina Hubeika 2014-04-18 13:55:32 UTC
Description of problem:

Along with the duplication (BZ 1067920) , old messages are retrieved (that were successfully read by different instances of JBoss EAP ) after failover in Vienna cluster with non-durable queue. 


Version-Release number of selected component (if applicable):
qpid-cpp-22-37

How reproducible:
100% 

Steps to Reproduce:
0. setup Vienna cluster

1. prepare an application 'appA' that :
 a. send 100 messages to queue_in that contain time of creation and ordinal number of a message, all in one transaction
 b. MDB listens on queue_in and re-sends messages to queue_out
 c. after all messages are processed by MDB, check the number of messages in queue-out, and dump them to the output

2. prepare another application 'appB' that is identical to 'appA' except that it triggers a failover before all messages are processed by MDB:
 a. send 100 messages to queue_in that contain time of creation and ordinal number of a message, all in one transaction
 b. MDB listens on queue_in and re-sends messages to queue_out
 c. before all messages are processed by MDB, trigger failover from the primary node
 d. after all messages are processed by MDB, check the number of messages in queue-out, and dump them to the output

3. start new and clean JBossEAP and run 'appA', stop EAP 
4. start new and clean JBossEAP and run 'appB', stop EAP

Actual results:

in the dump list of messages process by 'appB' will be seen all the messages that were processed and dumped by 'appA' along with the duplications of 'appB' messages
(duplication is covered with BZ 1067920). If the step 3. is performed several times, all these messages will be retreved after failover.


Expected results:

Messages from 'appA' run should not be re-apearing in the run of 'appB' (nor the duplication of the 'appB' should be seen)
no duplication of 'appB' messages


Additional info:

If the cluster is restarted, only duplication is seen as in BZ 1067920. Please note that MDB does not store messages in db

Comment 1 Valiantsina Hubeika 2014-04-18 14:29:57 UTC
Created attachment 887582 [details]
output of the applicaitons