| Summary: | python console stops trying to connect to broker | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise MRG | Reporter: | Robert Rati <rrati> | ||||
| Component: | qpid-qmf | Assignee: | Ken Giusti <kgiusti> | ||||
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Frantisek Reznicek <freznice> | ||||
| Severity: | high | Docs Contact: | |||||
| Priority: | high | ||||||
| Version: | 2.1 | CC: | esammons, freznice, jross, kgiusti, matt | ||||
| Target Milestone: | 2.1.2 | ||||||
| Target Release: | --- | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | qpid-qmf-0.14-3.el5, qpid-qmf-0.14-4.el6 | Doc Type: | Bug Fix | ||||
| Doc Text: |
Cause
Restarting the broker may result in hung QMF consoles.
Consequence
Any python-based QMF console will fail to notice the return of the broker and will be unable to monitor QMF agents.
Fix
A timeout was added to the connection cleanup logic, preventing the hang when a broker is restarted.
Result
The console will attempt to re-contact the broker periodically when a connection is lost. Once the broker is available, the console will connect to it and resume normal operation.
|
Story Points: | --- | ||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2012-12-07 17:42:59 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Attachments: |
|
||||||
|
Description
Robert Rati
2012-01-12 16:35:09 UTC
FYI: I've reproduced the same behaviour using the above description, except I am using qpid-tool instead of configd. qpid-tool is also based on the python console.py module. Created attachment 555625 [details]
test patch
Rob, can you give the attached patch for console.py a try in your reproducer? Let me know, thanks. I ran my test over the weekend, and the configd continues to connect to the broker and function as expected. Patch applied to upstream: https://issues.apache.org/jira/browse/QPID-3798 http://svn.apache.org/viewvc?view=rev&rev=1239648 To reproduce the problem, using qpid-tool:
1) Start up qpid-tool, and leave it running.
2) Start the qpidd daemon: /etc/init.d/qpidd start
3) Every minute, restart qpidd. I used a bash script:
while true; do
> sleep 60
> /etc/init.d/qpidd restart
> done
4) Observe the output from qpid-tool, it should always be able to reconnect to the broker after the restart:
[root@mrg44 py]# qpid-tool
Management Tool for QPID
qpid: Broker disconnected: Disconnected Broker
Broker connected: Broker connected at: localhost:5672
Broker disconnected: Disconnected Broker
Broker connected: Broker connected at: localhost:5672
Prior to the fix, running this test would eventually cause qpid-tool to disconnect, without reconnecting. e.g.:
Broker disconnected: Disconnected Broker
Broker connected: Broker connected at: localhost:5672
Broker disconnected: Disconnected Broker
(the output would stop there, note no "Broker connected" message after the broker was restarted)
The issue is reliable fixed, tested on RHEL5.7 / 6.2 i[36]86 / x86_64 on packages: python-qpid-0.14-4.el5 python-qpid-qmf-0.14-3.el5 qpid-cpp*-0.14-7.el5 qpid-java-*-0.14-3.el5 qpid-qmf-0.14-3.el5 qpid-qmf-devel-0.14-3.el5 qpid-tests-0.14-1.el5 qpid-tools-0.14-1.el5 rh-qpid-cpp-tests-0.14-7.el5 ruby-qpid-qmf-0.14-3.el5 python-qpid-0.14-5.el6.noarch python-qpid-qmf-0.14-4.el6.x86_64 qpid-cpp-*-0.14-7.el6.x86_64 qpid-java-*-0.14-3.el6.noarch qpid-java-jca*-0.10-11.el6.noarch qpid-qmf-0.14-4.el6.x86_64 qpid-qmf-devel-0.14-4.el6.x86_64 qpid-tests-0.14-1.el6.noarch qpid-tools-0.14-1.el6.noarch rh-qpid-cpp-tests-0.14-7.el6.x86_64 ruby-qpid-qmf-0.14-4.el6.x86_64 -> VERIFIED
Technical note added. If any revisions are required, please edit the "Technical Notes" field
accordingly. All revisions will be proofread by the Engineering Content Services team.
New Contents:
Cause
Restarting the broker may result in hung QMF consoles.
Consequence
Any python-based QMF console will fail to notice the return of the broker and will be unable to monitor QMF agents.
Fix
A timeout was added to the connection cleanup logic, preventing the hang when a broker is restarted.
Result
The console will attempt to re-contact the broker periodically when a connection is lost. Once the broker is available, the console will connect to it and resume normal operation.
|