[
https://issues.apache.org/jira/browse/QPID-5852?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gordon Sim reopened QPID-5852:
------------------------------
The fix for this bug causes a recursion when the connection is lost. E.g. drain
-f amq.fanout, then kill the broker:
{noformat}
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
344, in close
ssn.close(timeout=timeout)
File "<string>", line 6, in close
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
768, in close
self.sync(timeout=timeout)
File "<string>", line 6, in sync
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
759, in sync
if not self._ewait(lambda: not self.outgoing and not self.acked,
timeout=timeout):
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
594, in _ewait
result = self.connection._ewait(lambda: self.error or predicate(), timeout)
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
233, in _ewait
self.check_error()
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
225, in check_error
self.close()
File "<string>", line 6, in close
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
344, in close
ssn.close(timeout=timeout)
File "<string>", line 6, in close
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
768, in close
self.sync(timeout=timeout)
File "<string>", line 6, in sync
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
759, in sync
if not self._ewait(lambda: not self.outgoing and not self.acked,
timeout=timeout):
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
594, in _ewait
result = self.connection._ewait(lambda: self.error or predicate(), timeout)
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
233, in _ewait
self.check_error()
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
225, in check_error
self.close()
File "<string>", line 6, in close
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
344, in close
ssn.close(timeout=timeout)
File "<string>", line 6, in close
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
768, in close
self.sync(timeout=timeout)
File "<string>", line 6, in sync
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
759, in sync
if not self._ewait(lambda: not self.outgoing and not self.acked,
timeout=timeout):
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
594, in _ewait
result = self.connection._ewait(lambda: self.error or predicate(), timeout)
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
233, in _ewait
self.check_error()
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
225, in check_error
self.close()
File "<string>", line 6, in close
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
346, in close
self.detach(timeout=timeout)
File "<string>", line 6, in detach
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
318, in detach
self._wakeup()
File
"/home/gordon/projects/qpid-svn-trunk/python/qpid/messaging/endpoints.py", line
211, in _wakeup
self._modcount += 1
File "/home/gordon/projects/qpid-svn-trunk/python/qpid/datatypes.py", line
150, in __add__
return Serial(self.value + other)
RuntimeError: maximum recursion depth exceeded
{noformat}
> [Python client] connection.opened() returns True after unsuccessful
> connection
> --------------------------------------------------------------------------------
>
> Key: QPID-5852
> URL: https://issues.apache.org/jira/browse/QPID-5852
> Project: Qpid
> Issue Type: Bug
> Components: Python Client
> Affects Versions: 0.28
> Reporter: Pavel Moravec
> Assignee: Pavel Moravec
> Priority: Trivial
> Fix For: 0.29
>
>
> Description of problem:
> When python connection fails to connect to a broker, connection status is
> opened == True. After unsuccessfull connection, the state of Connection
> object should be False.
> How reproducible:
> 100%
> Steps to Reproduce:
> 1. create a connection to nonexisting broker in python
> 2. check return value od connection.opened()
> (or see below reproducer)
> Actual results:
> True
> Expected results:
> False
> Reproducer script:
> from qpid.messaging import *
> parms = {}
> try:
> connection = Connection("invalid-hostname", **parms)
> connection.open()
> except ConnectionError,e:
> print e
> print "connection.opened=%s" %(connection.opened())
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]