Bug 614054
Summary: | qpid python client [high level API] failover not functional (reconnect from failover exchange) | |||
---|---|---|---|---|
Product: | Red Hat Enterprise MRG | Reporter: | Frantisek Reznicek <freznice> | |
Component: | python-qpid | Assignee: | Rafael H. Schloming <rafaels> | |
Status: | CLOSED ERRATA | QA Contact: | Frantisek Reznicek <freznice> | |
Severity: | high | Docs Contact: | ||
Priority: | high | |||
Version: | Development | CC: | esammons, rafaels, tross | |
Target Milestone: | 1.3 | |||
Target Release: | --- | |||
Hardware: | All | |||
OS: | Linux | |||
Whiteboard: | ||||
Fixed In Version: | Doc Type: | Bug Fix | ||
Doc Text: | Story Points: | --- | ||
Clone Of: | ||||
: | 614132 (view as bug list) | Environment: | ||
Last Closed: | 2010-10-20 11:29:48 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: | ||||
Bug Depends On: | ||||
Bug Blocks: | 614132 |
Description
Frantisek Reznicek
2010-07-13 15:27:26 UTC
There may be a few issues at play here. So far I've fixed two problems. One is the background thread exiting with the LinkClosed exception. This looks scary but shouldn't actually have any negative effects. The other issue is numerous extra reconnect attempts after the reconnect limit is exceeded. This is also incorrect, but again shouldn't have any negative effects on the functioning of the test. I've built new packages with both these fixes. Can you confirm whether the messages are successfully sent/received, i.e. is there an additional problem, or are the two fixes I've made sufficient? If there are further problems, please kick this back to assigned. Yes, I will retest. LinkClosed exception and numerous extra reconnect attempts I saw as well, but did not get to the BZ for them. I can confirm the minor problems with LinkClosed & numerous extra reconnect attepts are solved, but the main problem that client does not try another host url in the url list got from failover exchange is still present. Retested on python-qpid-0.7.946106-7.el5 -> ASSIGNED Transcript: ~~~~~~~~~~ [root@dhcp-27-226 test]# cat ./msgs.in | ../spout --address "addr1; {create: sender, delete: receiver}" --broker dhcp-26-227 --reconnect --reconnect-interval 3 --reconnect-limit 10 --reconnect-urls-from-failover-exchange [root@dhcp-27-226 test]# ../drain.py --address "addr1; {create: sender, delete: receiver}" --broker dhcp-26-227 --reconnect --reconnect-interval 2 --reconnect-limit 5 --reconnect-urls-from-failover-exchange --print "%(C)s"> msgs.out 2010-07-14 09:10:11,599 WARNING set reconnect_urls for conn <qpid.messaging.endpoints.Connection instance at 0x2b884c364560>: [u'10.34.26.227:5672,tcp', u'10.34.27.226:5672,tcp'] << broker on dhcp-26-227 exited>> 2010-07-14 09:10:13,335 WARNING recoverable error[attempt 0]: connection aborted 2010-07-14 09:10:13,336 WARNING sleeping 2 seconds 2010-07-14 09:10:15,336 WARNING trying: dhcp-26-227:5672 2010-07-14 09:10:15,338 WARNING recoverable error[attempt 1]: (111, 'Connection refused') 2010-07-14 09:10:15,338 WARNING sleeping 2 seconds 2010-07-14 09:10:17,338 WARNING trying: dhcp-26-227:5672 2010-07-14 09:10:17,340 WARNING recoverable error[attempt 2]: (111, 'Connection refused') 2010-07-14 09:10:17,340 WARNING sleeping 2 seconds 2010-07-14 09:10:19,340 WARNING trying: dhcp-26-227:5672 2010-07-14 09:10:19,342 WARNING recoverable error[attempt 3]: (111, 'Connection refused') 2010-07-14 09:10:19,342 WARNING sleeping 2 seconds 2010-07-14 09:10:21,343 WARNING trying: dhcp-26-227:5672 2010-07-14 09:10:21,345 WARNING recoverable error[attempt 4]: (111, 'Connection refused') 2010-07-14 09:10:21,345 WARNING sleeping 2 seconds 2010-07-14 09:10:23,345 WARNING trying: dhcp-26-227:5672 2010-07-14 09:10:23,347 WARNING recoverable error[attempt 5]: (111, 'Connection refused') 2010-07-14 09:10:23,347 WARNING sleeping 2 seconds 2010-07-14 09:10:25,347 WARNING trying: dhcp-26-227:5672 Traceback (most recent call last): File "../drain.py", line 114, in ? msg = rcv.fetch(timeout=timeout) File "<string>", line 6, in fetch File "/usr/lib/python2.4/site-packages/qpid/messaging/endpoints.py", line 1005, in fetch self._ecwait(lambda: not self.draining) File "/usr/lib/python2.4/site-packages/qpid/messaging/endpoints.py", line 50, in _ecwait result = self._ewait(lambda: self.closed or predicate(), timeout) File "/usr/lib/python2.4/site-packages/qpid/messaging/endpoints.py", line 957, in _ewait result = self.session._ewait(lambda: self.error or predicate(), timeout) File "/usr/lib/python2.4/site-packages/qpid/messaging/endpoints.py", line 550, in _ewait result = self.connection._ewait(lambda: self.error or predicate(), timeout) File "/usr/lib/python2.4/site-packages/qpid/messaging/endpoints.py", line 194, in _ewait self.check_error() File "/usr/lib/python2.4/site-packages/qpid/messaging/endpoints.py", line 187, in check_error raise self.error qpid.messaging.exceptions.ConnectError: (111, 'Connection refused') Exception in thread auto-fetch-reconnect-urls: Traceback (most recent call last): File "/usr/lib64/python2.4/threading.py", line 442, in __bootstrap self.run() File "/usr/lib64/python2.4/threading.py", line 422, in run self.__target(*self.__args, **self.__kwargs) File "/usr/lib/python2.4/site-packages/qpid/messaging/util.py", line 38, in main msg = rcv.fetch() File "<string>", line 6, in fetch File "/usr/lib/python2.4/site-packages/qpid/messaging/endpoints.py", line 1000, in fetch msg = self.session._get(self, timeout=timeout) File "<string>", line 6, in _get File "/usr/lib/python2.4/site-packages/qpid/messaging/endpoints.py", line 633, in _get timeout): File "/usr/lib/python2.4/site-packages/qpid/messaging/endpoints.py", line 550, in _ewait result = self.connection._ewait(lambda: self.error or predicate(), timeout) File "/usr/lib/python2.4/site-packages/qpid/messaging/endpoints.py", line 194, in _ewait self.check_error() File "/usr/lib/python2.4/site-packages/qpid/messaging/endpoints.py", line 187, in check_error raise self.error ConnectError: (111, 'Connection refused') [root@dhcp-27-226 test]# ls -lA ./msgs.* ; diff ./msgs.in msgs.out | head -rw-rw-r-- 1 root root 106935 Jul 13 16:43 ./msgs.in -rw-rw-r-- 1 root root 5348 Jul 14 09:10 ./msgs.out 96,2000d95 < SOnzNRB1hRGOkkZ6cjeagxkRIsRZI4 < UOxdZRjI6nDcMFfZc07uCRrpK3r90SfvqJi2sSsLkLWn < 63hVPjS9X39BxX3mhQJw1zWImnh0iJHKYFFfiKvVP8dEgZFhvUyebtXm8tWJmwisYY78pifWR2TNlEFVQvRzeDmpqXQ < Brh1C7fviBMGP7gI1W3kGMhQa9 < fagu99TaWEIEYyXcv4YqnzJNOUWj0MVUHVzesWno3es1HtLLwCeJJSla40ljNwGljSHlsNHMYk6uKUvg2qeaRTDD9Pi7HcKtk < MTa0BnPK6nstksf12mcxVi9pipNqZMxIda08jBZHzqnlJE9YbBAhOBD9w1Kwd1BsYi < a5wOGa0SbaMmo4k3u8CCK9FNQ65PU0YVsGr3hLVp1ZjH2z3QqefoHEOQJINgvcz5redcJaG1bSvs < lutyPxFyerX14o9g4jq8L < w0LoLMZi6U8ZtRTZy1wThEW1qsivSm1lI8itdoNxKnT9583g [root@dhcp-27-226 test]# rpm -q python-qpid python-qpid-0.7.946106-7.el5 Ah, of course. I was so distracted by the traceback that I completely missed the fact that it wasn't reconnecting. Sorry for the false alarm. I'll try to get a fix in this morning. Ok, hopefully this is fixed now. I've built a dash 8 for RHEL-5 and RHEL-6, and RHEL-4 is currently brewing so it should be along shortly. The issue has been fixed, tested on RHEL 4.8 / 5.5 / 6.0beta i386 / x86_64 on packages: python-qpid-0.7.946106-9.el4/5/6 qpid-cpp-server-0.7.946106-10.el4/5 qpid-cpp-server-0.7.946106-5.el6.i686 -> VERIFIED |