Bug 503024 - If there are unacked messages on a queue with ring policy when new member joins cluster, queue becomes inconsistent
If there are unacked messages on a queue with ring policy when new member joi...
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp (Show other bugs)
All Linux
high Severity high
: 1.1.2
: ---
Assigned To: Gordon Sim
Martin Kudlej
Depends On:
  Show dependency treegraph
Reported: 2009-05-28 07:02 EDT by Gordon Sim
Modified: 2009-06-12 13:39 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2009-06-12 13:39:20 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
Fix (created against code for 752581-8) (1.45 KB, patch)
2009-05-28 11:03 EDT, Gordon Sim
no flags Details | Diff
Further fix (created against code for 752581-12) (3.45 KB, patch)
2009-06-05 15:30 EDT, Gordon Sim
no flags Details | Diff

  None (edit)
Description Gordon Sim 2009-05-28 07:02:38 EDT
Description of problem:

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


How reproducible:


Steps to Reproduce:
1. start one node
2. create a queue with ring policy and fixed count (e.g. qpid-config add queue test-queue --max-queue-count 5 --limit-policy ring)
3. send some messages to the queue (e.g. for m in one two three four five; do echo $m; done | ./qpid/cpp/src/tests/sender)
4. receive but don't yet ack a message (e.g. start and leave running:  ./qpid/cpp/src/tests/receiver --ack-frequency 10 --credit-window 1)
5. add new node to cluster
6. release (or consume) message from step 4 (e.g. kill receiver started in step 4)
7. check messages on each node (e.g. by running ./qpid/cpp/src/tests/receiver --browse --messages 5 against each node in turn)
Actual results:

Nodes show different set of messages e.g.

first node:

second node:

Expected results:

Messages reported from each node should be the same.

Additional info:
Comment 1 Gordon Sim 2009-05-28 07:55:24 EDT
Sorry, missed one step in reproducer above. Between steps 5 and 6 need to send another message to the queue (e.g. echo six | ./qpid/cpp/src/tests/sender)
Comment 2 Gordon Sim 2009-05-28 11:03:09 EDT
Created attachment 345774 [details]
Fix (created against code for 752581-8)
Comment 3 Gordon Sim 2009-05-29 11:06:49 EDT
Fixed in qpidd-0.5.752581-10.
Comment 4 Martin Kudlej 2009-06-02 03:40:50 EDT
Tested on RHEL 5.3 i386/x86_64 qpidd-0.5.752581-10.el5 and it works --> VERIFIED.
Comment 5 Gordon Sim 2009-06-05 10:25:09 EDT
This is not fully fixed; if the sixth message is sent *before* the second node is added to the cluster in the case above then the queues remain inconsitent after the join.
Comment 6 Gordon Sim 2009-06-05 15:30:00 EDT
Created attachment 346706 [details]
Further fix (created against code for 752581-12)
Comment 7 Gordon Sim 2009-06-09 04:32:20 EDT
This second case is fixed in qpidd-0.5.752581-13.el5
Comment 8 Martin Kudlej 2009-06-09 07:28:41 EDT
Tested on RHEL 5.3 i386/x86_64 qpidd-0.5.752581-13.el5 and it works as we expected in Comment 5 -->
Comment 10 errata-xmlrpc 2009-06-12 13:39:20 EDT
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.


Note You need to log in before you can comment on or make changes to this bug.