[ 
https://issues.apache.org/jira/browse/QPID-4349?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13468725#comment-13468725
 ] 

Alan Conway commented on QPID-4349:
-----------------------------------

This is a race condition and hard to reproduce.

When a queue is deleted, observeDequeue is called for each message in turn, 
which updates ReplicatingSubscription's dequeued set. That set is sent to the 
backup it it's connection thread.

Once all messages are dequeued, raiseEvent is called to send a QMF QueueDelete 
message. This is also sent to the backup in it's conection thread.

The problem is there's no guarantee of ordering between the two events. If the 
dequeus are processed before the delete event then there's no duplicationl If 
after then there is duplication.
                
> HA duplicates messages with alternate exchangee.
> ------------------------------------------------
>
>                 Key: QPID-4349
>                 URL: https://issues.apache.org/jira/browse/QPID-4349
>             Project: Qpid
>          Issue Type: Improvement
>          Components: C++ Clustering
>    Affects Versions: 0.18
>            Reporter: Alan Conway
>            Assignee: Alan Conway
>
> If a queue has an alternate-exchange then deleting the queue will route 
> messages to it. The problem is that this will route the messages twice: once 
> on the primary and once on the backup.
> Reproduce:
> - Declare a queue q1 with alternate exchange amq.fanout
> - Bind a queue q2 to amq.fanout
> - Send messages to q1
> - Delete q1
> - Verify that messages appear twice on q2.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to