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.
Fixed upstream: https://svn.apache.org/r1537579
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