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

        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

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development