Bug 503024 - If there are unacked messages on a queue with ring policy when new member joins cluster, queue becomes inconsistent
Summary: If there are unacked messages on a queue with ring policy when new member joi...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp
Version: 1.1.1
Hardware: All
OS: Linux
high
high
Target Milestone: 1.1.2
: ---
Assignee: Gordon Sim
QA Contact: Martin Kudlej
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-05-28 11:02 UTC by Gordon Sim
Modified: 2009-06-12 17:39 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2009-06-12 17:39:20 UTC
Target Upstream Version:
Embargoed:


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


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2009:1097 0 normal SHIPPED_LIVE Red Hat Enterprise MRG Messaging bug fixing update 2009-06-12 17:38:48 UTC

Description Gordon Sim 2009-05-28 11:02:38 UTC
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 11:55:24 UTC
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 15:03:09 UTC
Created attachment 345774 [details]
Fix (created against code for 752581-8)

Comment 3 Gordon Sim 2009-05-29 15:06:49 UTC
Fixed in qpidd-0.5.752581-10.

Comment 4 Martin Kudlej 2009-06-02 07:40:50 UTC
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 14:25:09 UTC
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 19:30:00 UTC
Created attachment 346706 [details]
Further fix (created against code for 752581-12)

Comment 7 Gordon Sim 2009-06-09 08:32:20 UTC
This second case is fixed in qpidd-0.5.752581-13.el5

Comment 8 Martin Kudlej 2009-06-09 11:28:41 UTC
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 17:39:20 UTC
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.