You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Alan Conway (JIRA)" <ji...@apache.org> on 2012/09/27 18:46:07 UTC

[jira] [Created] (QPID-4349) HA duplicates messages with alternate exchangee.

Alan Conway created QPID-4349:
---------------------------------

             Summary: 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: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


[jira] [Commented] (QPID-4349) HA duplicates messages with alternate exchangee.

Posted by "Alan Conway (JIRA)" <ji...@apache.org>.
    [ 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: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


[jira] [Resolved] (QPID-4349) HA duplicates messages with alternate exchangee.

Posted by "Alan Conway (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-4349?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alan Conway resolved QPID-4349.
-------------------------------

    Resolution: Fixed

Fixed as  a side effect of a previous commit. Comitted a unit test to prove this.

------------------------------------------------------------------------
r1397295 | aconway | 2012-10-11 16:38:34 -0400 (Thu, 11 Oct 2012) | 5 lines

QPID-4349: Duplicate messages with alternate exchange.

This check-in is a test only, the issue was fixed as a side effect
of the fix for QPID-4350.

------------------------------------------------------------------------

                
> 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: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org