Bug 1147968 - Session.nextReceiver() with IMMEDIATE duration does not raise exception when connection is closed
Summary: Session.nextReceiver() with IMMEDIATE duration does not raise exception when ...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp
Version: 2.5
Hardware: All
OS: Linux
high
high
Target Milestone: 2.5.5
: ---
Assignee: Gordon Sim
QA Contact: Jitka Kocnova
URL:
Whiteboard:
Depends On:
Blocks: 1140368 1140369 1147977
TreeView+ depends on / blocked
 
Reported: 2014-09-30 12:30 UTC by Pavel Moravec
Modified: 2018-12-09 18:42 UTC (History)
7 users (show)

Fixed In Version: qpid-cpp-0.18-33
Doc Type: Bug Fix
Doc Text:
It was discovered that if Session.nextReceiver() with IMMEDIATE duration was called while the connection to the broker was being lost (due to a network issue, for example) , the method could fail to raise the expected MessagingException. This could cause a client application to not be notified that the connection has shut down, so the application can fail to reconnect. Session.nextReceiver now reliably returns the desired exception if the connection is closed. The client application gets the exception and can take appropriate action.
Clone Of:
: 1147977 (view as bug list)
Environment:
Last Closed: 2014-10-22 16:34:39 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
Reproducer (3.08 KB, text/x-csrc)
2014-09-30 12:32 UTC, Pavel Moravec
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1128653 0 unspecified CLOSED nextReceiver() with IMMEDIATE duration always returns null 2021-02-22 00:41:40 UTC
Red Hat Product Errata RHBA-2014:1682 0 normal SHIPPED_LIVE Red Hat Enterprise MRG Messaging 2 update 2014-10-22 20:34:01 UTC

Internal Links: 1128653

Description Pavel Moravec 2014-09-30 12:30:28 UTC
Description of problem:
Invoking Session.nextReceiver() with IMMEDIATE duration when the broker is just dropping the connection (i.e. during its shutdown), the method does not raise MessagingException on faster machines (some timing is crucial).


Version-Release number of selected component (if applicable):
0.18-31


How reproducible:
100% (on faster machines)


Steps to Reproduce:
1. Compile attached program. Dont find a logic in the tight loop, it just serves as a reproducer.

2. service qpidd start; qpid-config add queue q
3. ./qpid-read <broker> q 10 &
4. service qpidd stop
5. check qpid-read process


Actual results:
qpid-read should be still running, no exception caught


Expected results:
MessagingException is raised, qpid-read terminated


Additional info:

Comment 1 Pavel Moravec 2014-09-30 12:32:33 UTC
Created attachment 942689 [details]
Reproducer

Comment 6 Jared MORGAN 2014-10-02 00:37:49 UTC
Hey Mike

I got an Errata advisory update for this and noted this bug was added.

Would this require some CCFR to be provided, and the MRG 2 Release Notes doc subsequently updated?

Cheers

J

Comment 7 Mike Cressman 2014-10-02 01:44:09 UTC
Doc text updated.  Please add this bug to the Release Notes for the 2.5.5 release.

Comment 9 Jitka Kocnova 2014-10-17 13:09:28 UTC
This issue is fixed.

Verified OS: RHEL 7 x86_64, RHEL 6 x86_64, i386; RHEL 5 x86_64, i386

Packages:

qpid-cpp-client-devel-docs-0.18-35 
qpid-cpp-client-devel-0.18-35 
qpid-cpp-client-ssl-0.18-35
qpid-cpp-client-0.18-35
qpid-cpp-debuginfo-0.18-35 
qpid-cpp-server-devel-0.18-35  
qpid-cpp-server-ssl-0.18-35
qpid-cpp-server-store-0.18-35 
qpid-cpp-server-xml-0.18-35
qpid-cpp-server-0.18-35 
qpid-tools-0.18-10

-> VERIFIED

Comment 11 errata-xmlrpc 2014-10-22 16:34:39 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2014-1682.html


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