Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.10
-
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.