Bug 1025381 - exclusivity requirement on existing queue allows more than one receiver
Summary: exclusivity requirement on existing queue allows more than one receiver
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp
Version: 3.0
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: 3.0
: ---
Assignee: Gordon Sim
QA Contact: Petr Matousek
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-10-31 15:02 UTC by Zdenek Kraus
Modified: 2015-01-21 12:52 UTC (History)
5 users (show)

Fixed In Version: qpid-cpp-0.22-25.el6
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-01-21 12:52:19 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Apache JIRA QPID-5283 0 None None None Never

Description Zdenek Kraus 2013-10-31 15:02:50 UTC
Description of problem:
On existing queue, when some receiver is still subscribed and new receiver requires exclusivity, both receivers are allowed to receive, without warning.

Version-Release number of selected component (if applicable):
qpid-cpp-server-0.22-23

How reproducible:
100%

Steps to Reproduce:
1. service qpidd start
2. ./drain -f "q;{create:always}"
3. ./drain -f "q;{create:always, node:{x-declare:{exclusive:true}}}"

4. qpid-config queues
5. ./spout -c 10 "q"


Actual results:
Queue Name                                Attributes
=================================================================
6f798b03-43d9-4107-841c-7b966c9e640e:0.0  auto-del excl 
q                                         excl 

drain 1
Message(properties={spout-id:2f00d673-7c04-430c-91c6-77ed1a3880b1:0, x-amqp-0-10.routing-key:q}, content='')
Message(properties={spout-id:fac137c3-9b52-4058-9d27-53834ccb7a30:2, x-amqp-0-10.routing-key:q}, content='')
Message(properties={spout-id:8784d5da-11ed-49dc-ab2a-300a8f122286:4, x-amqp-0-10.routing-key:q}, content='')
Message(properties={spout-id:05046b70-abbd-4167-8cf4-a9546ad0b46d:7, x-amqp-0-10.routing-key:q}, content='')
Message(properties={spout-id:e354f138-c118-47fa-b4c0-6366bab268b3:8, x-amqp-0-10.routing-key:q}, content='')

drain 2
Message(properties={spout-id:34f66e59-3158-4f72-9503-1e378eadf59e:1, x-amqp-0-10.routing-key:q}, content='')
Message(properties={spout-id:1003442d-be34-4b0c-a181-12adbd269e58:3, x-amqp-0-10.routing-key:q}, content='')
Message(properties={spout-id:4bdedea7-5c03-47b4-82e2-6db6fa90b339:5, x-amqp-0-10.routing-key:q}, content='')
Message(properties={spout-id:842955dd-a0ed-4c83-9059-09135060e799:6, x-amqp-0-10.routing-key:q}, content='')
Message(properties={spout-id:441d5dbf-f290-4751-b15f-6ba374085adc:9, x-amqp-0-10.routing-key:q}, content='')

Expected results:
1/ non-exclusive drain is kicked
OR
2/ exclusive drain gets an exception

Additional info:
this behavior was not present at 2.3, because exclusivity was not able to be required afterwards.

Comment 2 Gordon Sim 2013-10-31 18:39:47 UTC
Fixed upstream: https://svn.apache.org/r1537579

Comment 3 Petr Matousek 2013-11-12 17:07:50 UTC
This issue has been fixed (tested both amqp0-10/1.0). 
Verified on rhel6.4 (i386, x86_64).

packages used for testing:
qpid-cpp-*-0.22-25.el6

-> VERIFIED


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