Bug 488806

Summary: SubscriptionManager::get() closes dispatch queue unexpectedly
Product: Red Hat Enterprise MRG Reporter: Gordon Sim <gsim>
Component: qpid-cppAssignee: Gordon Sim <gsim>
Status: CLOSED ERRATA QA Contact: Frantisek Reznicek <freznice>
Severity: medium Docs Contact:
Priority: high    
Version: 1.1CC: esammons
Target Milestone: 1.1.1   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-04-21 16:18:00 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
reproducer none

Description Gordon Sim 2009-03-05 19:48:35 UTC
Created attachment 334193 [details]
reproducer

If SubscriptionManager::get() is invoked with no subscriptions in place, the dispatch queue is closed and a subsequent SubscriptionManager::run() returns without dispatching.

Attached reproducer is a modified versio of the direct examples listener. Use the declare_queues and direct_producer from that example to create the queue and publish some messages. Then run this modified listener.

The expected result is that the first message is pulled of, then the rest are received via the listener. However the initial get() is causing the dispatcher to close the dispatch queue even though dispatching has not yet begun. Therefore only the first message is printed (from the get()) and run returns immediately.

Comment 1 Gordon Sim 2009-03-05 22:06:08 UTC
Fixed by r750622.

Comment 3 Frantisek Reznicek 2009-03-23 10:34:54 UTC
The issue has been fixed, validated on RHEL 4.7 / 5.2 / 5.3, i386 / x86_64 on packages: qpid*-0.5.752581-1.el5.

->VERIFIED

Comment 5 errata-xmlrpc 2009-04-21 16:18:00 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/RHEA-2009-0434.html