Created attachment 476663 [details] Source for reproducing error Description of problem: When a receiver is created with a qpid::messaging::Address which includes "delete:always", and then messages are palced in the queue, and the receiver closed, messages which have been acquired by the receiver stay in the queue and the queue is not deleted. Version-Release number of selected component (if applicable): qpid-cpp-client-devel-0.7.946106-24_ptc_hotfix_2.el5 qpid-cpp-mrg-debuginfo-0.7.946106-24_ptc_hotfix_2.el5 qpid-cpp-server-cluster-0.7.946106-24_ptc_hotfix_2.el5 qpid-cpp-server-store-0.7.946106-24_ptc_hotfix_2.el5 qpid-cpp-server-rdma-0.7.946106-24_ptc_hotfix_2.el5 qpid-cpp-server-devel-0.7.946106-24_ptc_hotfix_2.el5 qpid-cpp-client-ssl-0.7.946106-24_ptc_hotfix_2.el5 qpid-cpp-client-0.7.946106-24_ptc_hotfix_2.el5 qpid-cpp-server-ssl-0.7.946106-24_ptc_hotfix_2.el5 qpid-cpp-client-devel-docs-0.7.946106-24_ptc_hotfix_2.el5 qpid-cpp-client-rdma-0.7.946106-24_ptc_hotfix_2.el5 qpid-cpp-server-0.7.946106-24_ptc_hotfix_2.el5 How reproducible: Example programs attached Steps to Reproduce: 1. Run a broker on port 5673 (or modify script) 2. Compile and run close_test.cpp Actual results: 5 Messages are received by a receiver listening to the alternate exchange. qpid-stat shows that the original queue still exists and that 5 messages are still in the queue, which is the capacity of the original receiver. Expected results: 10 Messages are received by the receiver. Additional info: Also attached is a jruby test case that performs a similar test.
Created attachment 476664 [details] Ruby example
Fixed in revision 1068042.
Revision r1068042 was incorrect and was reverted.
Fixed in revision 1069030.
The C++ messaging client library now releases pending messages when a Receiver is closed. This only releases messages in the client's cache that have not been read. It does not release messages that have been read by the client application, but not acknowledged.
Fix available in https://brewweb.devel.redhat.com/buildinfo?buildID=157935
The issue has been fixed Verified on RHEL4.9, RHEL5.6 and RHEL6.1 architectures: i386, x86_64 Verification done with c++ reproducer only - unable to verify the issue with ruby reproducer, because ruby High Level Api packages are no available yet. packages installed: qpid-cpp-client-0.10-3.el6.x86_64 qpid-cpp-client-devel-0.10-3.el6.x86_64 qpid-cpp-client-devel-docs-0.10-3.el6.noarch qpid-cpp-client-rdma-0.10-3.el6.x86_64 qpid-cpp-client-ssl-0.10-3.el6.x86_64 qpid-cpp-server-0.10-3.el6.x86_64 qpid-cpp-server-cluster-0.10-3.el6.x86_64 qpid-cpp-server-devel-0.10-3.el6.x86_64 qpid-cpp-server-rdma-0.10-3.el6.x86_64 qpid-cpp-server-ssl-0.10-3.el6.x86_64 qpid-cpp-server-store-0.10-3.el6.x86_64 qpid-cpp-server-xml-0.10-3.el6.x86_64 qpid-qmf-0.10-6.el6.x86_64 qpid-qmf-devel-0.10-6.el6.x86_64 qpid-tools-0.10-3.el6.noarch ruby-qpid-0.7.946106-2.el6.x86_64 ruby-qpid-qmf-0.10-6.el6.x86_64 -> VERIFIED
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/RHEA-2011-0890.html