Qpid
  1. Qpid
  2. QPID-3217

Exchanges with IVE option cause cluster inconsistencies in updatees

    Details

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

      Description

      Steps to Reproduce:
      1. start a cluster node

      2. create an exchange with the IVE option
      qpid-config add exchange topic my-topic-exchange --ive

      3. send a message to that exchange

      spout --content abc my-topic-exchange/my-key

      4. start another node in the cluster
      5. create a queue and bind it to the exchange created in 2. using the key with
      which the message was sent in 3.

      qpid-config add queue my-queue
      qpid-config bind my-topic-exchange my-queue my-key

      (queue is now inconsistent; on the first node it has a message, on the second
      it has none)

      6. run ./src/tests/qpid-receive --capacity 1 --address 'my-queue;

      {mode: browse}

      ' against the first node

      Actual results:

      second node shutsdown with something like:

      2011-04-14 14:33:04 error Execution exception: invalid-argument:
      anonymous.35276a61-4f3a-46a9-a070-e88c6c6ac01f: confirmed < (2+0) but only sent
      < (1+0) (../../src/qpid/SessionState.cpp:154)
      2011-04-14 14:33:04 critical cluster(192.168.0.3:9532 READY/error) local error
      832 did not occur on member 192.168.0.3:9482: invalid-argument:
      anonymous.35276a61-4f3a-46a9-a070-e88c6c6ac01f: confirmed < (2+0) but only sent
      < (1+0) (../../src/qpid/SessionState.cpp:154)

      Expected results:

      no shutdown and the command in 6 can be repeated against wither node with the
      same results

      Additional info:

      Root of the problem is that exchange with IVE holds extra state in the form of
      the 'last message', and this is not transferred to new members.

        Activity

        Alan Conway created issue -
        Hide
        Gordon Sim added a comment -

        This change would be fine for 0.10; it adds no risk and makes the fact that the IVE feature doesn't work in a cluster explicit.

        Show
        Gordon Sim added a comment - This change would be fine for 0.10; it adds no risk and makes the fact that the IVE feature doesn't work in a cluster explicit.
        Hide
        Alan Conway added a comment -

        Fixed on trunk r1095209

        Show
        Alan Conway added a comment - Fixed on trunk r1095209
        Alan Conway made changes -
        Field Original Value New Value
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Justin Ross made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open Resolved Resolved
        7d 20h 18m 1 Alan Conway 27/Apr/11 16:14
        Resolved Resolved Closed Closed
        824d 3h 38m 1 Justin Ross 29/Jul/13 19:53

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development