Qpid
  1. Qpid
  2. QPID-4393

HA BrokerReplicator should call queue->bind, not exchange->bind

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.19
    • Component/s: C++ Clustering
    • Labels:
      None

      Description

      In BrokerReplicator, there are a few places that it calls exchange->bind(). We're seeing some incorrect behavior during failover testing (e.g. an exchange shows that it has 5 bindings when there is really only 1) and we think we've narrowed it down to this. Instead of calling exchange->bind(), it should call queue->bind(). If you look at qpid::broker::Broker::createObject(), you'll see that this method calls queue->bind() to bind a queue to an exchange.

      (Note that exchange->unbind() appears to be the correct operation for removing a binding, so this shouldn't need to be changed.)

        Activity

        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open Resolved Resolved
        17h 30m 1 Alan Conway 24/Oct/12 14:35
        Resolved Resolved Closed Closed
        278d 4h 18m 1 Justin Ross 29/Jul/13 18:53
        Justin Ross made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Alan Conway made changes -
        Fix Version/s 0.19 [ 12322452 ]
        Alan Conway made changes -
        Field Original Value New Value
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Alan Conway added a comment -

        Fixed on trunk
        ------------------------------------------------------------------------
        r1401710 | aconway | 2012-10-24 10:33:16 -0400 (Wed, 24 Oct 2012) | 9 lines

        Bug-869420 - QPID-4393: BrokerReplicator should call queue->bind, not exchange->bind

        In BrokerReplicator, there are a few places that it calls
        exchange->bind(). We're seeing some incorrect behavior during failover testing
        (e.g. an exchange shows that it has 5 bindings when there is really only 1) and
        we think we've narrowed it down to this. Instead of calling exchange->bind(), it
        should call queue->bind(). If you look at qpid::broker::Broker::createObject(),
        you'll see that this method calls queue->bind() to bind a queue to an exchange.

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

        Show
        Alan Conway added a comment - Fixed on trunk ------------------------------------------------------------------------ r1401710 | aconway | 2012-10-24 10:33:16 -0400 (Wed, 24 Oct 2012) | 9 lines Bug-869420 - QPID-4393 : BrokerReplicator should call queue->bind, not exchange->bind In BrokerReplicator, there are a few places that it calls exchange->bind(). We're seeing some incorrect behavior during failover testing (e.g. an exchange shows that it has 5 bindings when there is really only 1) and we think we've narrowed it down to this. Instead of calling exchange->bind(), it should call queue->bind(). If you look at qpid::broker::Broker::createObject(), you'll see that this method calls queue->bind() to bind a queue to an exchange. ------------------------------------------------------------------------
        Alan Conway created issue -

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development