Bug 874298

Summary: HA add UUID tag to avoid using an out of date queue.
Product: Red Hat Enterprise MRG Reporter: Alan Conway <aconway>
Component: qpid-cppAssignee: Alan Conway <aconway>
Status: CLOSED CURRENTRELEASE QA Contact: MRG Quality Engineering <mrgqe-bugs>
Severity: high Docs Contact:
Priority: high    
Version: DevelopmentCC: esammons, jdillama, jross, lzhaldyb, mcressma
Target Milestone: 2.3Keywords: OtherQA
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qpid-cpp-0.18-9 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-03-19 16:38:20 UTC 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:
Bug Depends On:    
Bug Blocks: 698367    

Description Alan Conway 2012-11-07 21:09:56 UTC
Description of problem:

Here's the scenario: we have a cluster with primary A and backups B and C. There is a queue Q that is replicated to both. Now A dies and B takes over as primary. Before C has connected to B, a client destroys Q and creates a new queue with the same name, Q. When C does connect it sees a queue named Q and mistakenly assumes it is the same queue as it's own Q - so it has an incorrect replica of Q. The same scenario applies to exchanges.


Version-Release number of selected component (if applicable):


How reproducible: 100%


Steps to Reproduce:
1. Start a 3 cluster
2. Create a queue Q with messages
3. Kill the primary but don't promote any backups
4. On one broker delete and re-create Q, then promote the broker
  
Actual results: The other backup will keep it's out-of-date Q and messages.

Expected results: The other backup deletes its old Q and creates a new one to replicate the new Q.

Additional info:

The unit test in this patch illustrates how to reproduce the problem.