Bug 1044002

Summary: setting heartbeat has no effect on connection establishment timeout
Product: Red Hat Enterprise MRG Reporter: Gordon Sim <gsim>
Component: python-qpidAssignee: Alan Conway <aconway>
Status: CLOSED ERRATA QA Contact: Leonid Zhaldybin <lzhaldyb>
Severity: unspecified Docs Contact:
Priority: medium    
Version: 2.3CC: esammons, iboverma, jross, lzhaldyb, mcressma
Target Milestone: 2.4.4   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-qpid-0.18-6 Doc Type: Bug Fix
Doc Text:
Cause: During connection set-up by the python client, the heartbeat setting was ignored. (It was respected once the connection was established.) Consequence: Connecting to an unresponsive process could block for an unlimited time. Fix: Respect heartbeats during connection set-up. Result: With heartbeat configured, an attempt to connect will abort after two heartbeat intervals have elapsed if not successful.
Story Points: ---
Clone Of:
: 1044003 (view as bug list) Environment:
Last Closed: 2014-02-11 08:29:24 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1044003    

Description Gordon Sim 2013-12-17 15:26:06 UTC
Description of problem:

The python client only uses heartbeats once the connection has been established. It does not use them to time out the initial connect attempt.

E.g. modify drain to use a 5sec heartbeat, start a broker, run drain -f amq.direct and then kill -STOP the broker - heartbeats are missed and connection times out as expected.

But now try to reconnect to the hung broker, and the connect attempt will not timeout.

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

2.3 and before as well as 3.0 early access

How reproducible:

100%

Steps to Reproduce:
1. modify drain to use a 5sec heartbeat
2. start a broker
3. drain -f amq.direct
4. kill -STOP the broker
5. restart drain -f amq.direct

Actual results:

heartbeat times out the drain in step 3 but not in step 5, where it hangs

Expected results:

In both step 3 and 5 drain exits with timeout after 10 seconds

Additional info:

Comment 1 Alan Conway 2014-01-09 22:48:50 UTC
Fixed on http://git.app.eng.bos.redhat.com/rh-qpid.git/log/?h=0.18-mrg-aconway-bz1044002

(Note branch with incorrect name 0.18-mrg-aconway-bz1044003 pushed by mistake, deletion prohibited.)

Comment 4 Leonid Zhaldybin 2014-02-04 13:14:24 UTC
Tested on RHEL5.10 and RHEL6.5 (both i386 and x86_64). This issue has been fixed.

Packages used for testing:

RHEL5.10
python-qpid-0.18-9.el5_10
python-qpid-qmf-0.18-20.el5_10
qpid-cpp-client-0.18-20.el5_10
qpid-cpp-client-devel-0.18-20.el5_10
qpid-cpp-client-devel-docs-0.18-20.el5_10
qpid-cpp-client-rdma-0.18-20.el5_10
qpid-cpp-client-ssl-0.18-20.el5_10
qpid-cpp-server-0.18-20.el5_10
qpid-cpp-server-cluster-0.18-20.el5_10
qpid-cpp-server-devel-0.18-20.el5_10
qpid-cpp-server-ha-0.18-20.el5_10
qpid-cpp-server-rdma-0.18-20.el5_10
qpid-cpp-server-ssl-0.18-20.el5_10
qpid-cpp-server-store-0.18-20.el5_10
qpid-cpp-server-xml-0.18-20.el5_10
qpid-java-client-0.18-8.el5_9
qpid-java-common-0.18-8.el5_9
qpid-java-example-0.18-8.el5_9
qpid-jca-0.18-8.el5
qpid-jca-xarecovery-0.18-8.el5
qpid-jca-zip-0.18-8.el5
qpid-qmf-0.18-20.el5_10
qpid-qmf-devel-0.18-20.el5_10
qpid-tests-0.18-2.el5
qpid-tools-0.18-10.el5_9
rh-qpid-cpp-tests-0.18-20.el5_10
ruby-qpid-qmf-0.18-20.el5_10

RHEL6.5
python-qpid-0.18-9.el6.noarch
python-qpid-qmf-0.18-20.el6.i686
qpid-cpp-client-0.18-20.el6.i686
qpid-cpp-client-devel-0.18-20.el6.i686
qpid-cpp-client-devel-docs-0.18-20.el6.noarch
qpid-cpp-client-rdma-0.18-20.el6.i686
qpid-cpp-client-ssl-0.18-20.el6.i686
qpid-cpp-server-0.18-20.el6.i686
qpid-cpp-server-cluster-0.18-20.el6.i686
qpid-cpp-server-devel-0.18-20.el6.i686
qpid-cpp-server-ha-0.18-20.el6.i686
qpid-cpp-server-rdma-0.18-20.el6.i686
qpid-cpp-server-ssl-0.18-20.el6.i686
qpid-cpp-server-store-0.18-20.el6.i686
qpid-cpp-server-xml-0.18-20.el6.i686
qpid-java-client-0.18-8.el6_4.noarch
qpid-java-common-0.18-8.el6_4.noarch
qpid-java-example-0.18-8.el6_4.noarch
qpid-jca-0.18-8.el6.noarch
qpid-jca-xarecovery-0.18-8.el6.noarch
qpid-jca-zip-0.18-8.el6.noarch
qpid-qmf-0.18-20.el6.i686
qpid-qmf-devel-0.18-20.el6.i686
qpid-tests-0.18-2.el6.noarch
qpid-tools-0.18-10.el6_4.noarch
rh-qpid-cpp-tests-0.18-20.el6.i686
ruby-qpid-qmf-0.18-20.el6.i686

-> VERIFIED

Comment 6 errata-xmlrpc 2014-02-11 08:29:24 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.

http://rhn.redhat.com/errata/RHBA-2014-0130.html