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...
Status: CLOSED ERRATA
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp (Show other bugs)
1.1.1
All Linux
high Severity high
: 1.1.2
: ---
Assigned To: Gordon Sim
Martin Kudlej
:
Depends On:
Blocks:
  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:
Environment:
Last Closed: 2009-06-12 13:39:20 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
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):

qpidd-0.5.752581-8.el5

How reproducible:

100%

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:
  two
  three
  four
  five
  six

second node:
  one
  three
  four
  five
  six

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 -->
VERIFIED.
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.

http://rhn.redhat.com/errata/RHBA-2009-1097.html

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