Update ensure()/reconnect() to catch MessagingError
The error handling code that gets connections reset if necessary caught ConnectionError. It really needs to catch MessagingError, which ConnectionError inherits from. There are other types of MessagingErrors that may occur, such as InternalError, and they need to cause the connection to reset, as well. This fix has already been merged into oslo.messaging. -- Cherry-picked from oslo-incubator 234f64d608266f43d8856ff98c89ceba6699d752 See also https://bugzilla.redhat.com/show_bug.cgi?id=1086077 Closes-bug: #1303890 Change-Id: Ic5082b74a362ded8b35cbc75cf178fe6e0db62d0
This commit is contained in:
parent
a701f23807
commit
382be6d3b8
@ -504,7 +504,7 @@ class Connection(object):
|
||||
if self.connection.opened():
|
||||
try:
|
||||
self.connection.close()
|
||||
except qpid_exceptions.ConnectionError:
|
||||
except qpid_exceptions.MessagingError:
|
||||
pass
|
||||
|
||||
broker = self.brokers[next(self.next_broker_indices)]
|
||||
@ -512,7 +512,7 @@ class Connection(object):
|
||||
try:
|
||||
self.connection_create(broker)
|
||||
self.connection.open()
|
||||
except qpid_exceptions.ConnectionError as e:
|
||||
except qpid_exceptions.MessagingError as e:
|
||||
msg_dict = dict(e=e, delay=delay)
|
||||
msg = _LE("Unable to connect to AMQP server: %(e)s. "
|
||||
"Sleeping %(delay)s seconds") % msg_dict
|
||||
@ -540,7 +540,7 @@ class Connection(object):
|
||||
try:
|
||||
return method(*args, **kwargs)
|
||||
except (qpid_exceptions.Empty,
|
||||
qpid_exceptions.ConnectionError) as e:
|
||||
qpid_exceptions.MessagingError) as e:
|
||||
if error_callback:
|
||||
error_callback(e)
|
||||
self.reconnect()
|
||||
|
Loading…
Reference in New Issue
Block a user