Qpid
  1. Qpid
  2. QPID-4391

HA replicating subscriptions should not auto-delete queues

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.19
    • Component/s: None
    • Labels:
      None

      Description

      Description of problem:
      When an auto-delete queue is replicated, the replicating subscription attempts to auto-delete the queue after it has already been auto-deleted by the closing of the last non-HA consumer. An issue occurs if a new auto-delete queue with the same name is created shortly after the deletion of the previously queue. This can occur when a client subscribes to an auto-delete queue and is temporarily disconnected from the broker. It is possible for the cancelled HA subscription to remove the newly created queue from the queue registry since the old and new queues use the same names. The HA replicating subscription should not execute the auto-delete logic when the subscription is cancelled.

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

      How reproducible:
      Frequently

      Steps to Reproduce:
      Race condition between a consumer auto-deleting and recreating a queue of the same name and the HA replicating subscription auto-deleting the original queue. If the HA replicating subscription auto-deletes the original queue after the new queue is created, the new queue is removed from the queue registry.

      Actual results:
      New queue is removed from the queue registry.

      Expected results:
      HA subscription does not attempt to auto-delete the queue and therefore the new queue is not removed from the queue registry.

      Additional info: https://bugzilla.redhat.com/show_bug.cgi?id=868364

        Activity

        Hide
        Alan Conway added a comment -

        Fixed on trunk, 2 commits:

        ------------------------------------------------------------------------
        r1401711 | aconway | 2012-10-24 10:33:25 -0400 (Wed, 24 Oct 2012) | 11 lines

        Bug:868364 - QPID-4391: HA ignore stale responses.

        Related issue discovered while fixing this bug:

        The BrokerReplicater pulls management events and query responses from different
        queues, there is no co-ordination between them. If a response is processed late,
        after create and delete events, it will incorrectly re-create the deleted queue.

        This patch ignores responses if we have already seen an event for the queue or
        exchange.
        ------------------------------------------------------------------------
        r1401709 | aconway | 2012-10-24 10:33:09 -0400 (Wed, 24 Oct 2012) | 12 lines

        Bug 868364 - QPID-4391: HA replicating subscriptions should not auto-delete queues

        When an auto-delete queue is replicated, the replicating subscription attempts
        to auto-delete the queue after it has already been auto-deleted by the closing
        of the last non-HA consumer. An issue occurs if a new auto-delete queue with
        the same name is created shortly after the deletion of the previously queue.
        This can occur when a client subscribes to an auto-delete queue and is
        temporarily disconnected from the broker. It is possible for the cancelled HA
        subscription to remove the newly created queue from the queue registry since the
        old and new queues use the same names. The HA replicating subscription should
        not execute the auto-delete logic when the subscription is cancelled.

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

        Show
        Alan Conway added a comment - Fixed on trunk, 2 commits: ------------------------------------------------------------------------ r1401711 | aconway | 2012-10-24 10:33:25 -0400 (Wed, 24 Oct 2012) | 11 lines Bug:868364 - QPID-4391 : HA ignore stale responses. Related issue discovered while fixing this bug: The BrokerReplicater pulls management events and query responses from different queues, there is no co-ordination between them. If a response is processed late, after create and delete events, it will incorrectly re-create the deleted queue. This patch ignores responses if we have already seen an event for the queue or exchange. ------------------------------------------------------------------------ r1401709 | aconway | 2012-10-24 10:33:09 -0400 (Wed, 24 Oct 2012) | 12 lines Bug 868364 - QPID-4391 : HA replicating subscriptions should not auto-delete queues When an auto-delete queue is replicated, the replicating subscription attempts to auto-delete the queue after it has already been auto-deleted by the closing of the last non-HA consumer. An issue occurs if a new auto-delete queue with the same name is created shortly after the deletion of the previously queue. This can occur when a client subscribes to an auto-delete queue and is temporarily disconnected from the broker. It is possible for the cancelled HA subscription to remove the newly created queue from the queue registry since the old and new queues use the same names. The HA replicating subscription should not execute the auto-delete logic when the subscription is cancelled. ------------------------------------------------------------------------

          People

          • Assignee:
            Unassigned
            Reporter:
            Alan Conway
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development