Expand retry behavior to cover other python-ovs methods
If there is a disconnect, it is possible that we could throw an exception if we call wait() while the stream is currently set to None. Move the try: earlier so that if something weird happens, we at least retry before raising. Change-Id: Ic820ab3978a3b58a41762e6fca034f62d51a0243
This commit is contained in:
parent
03a79cb37b
commit
46e4323bed
|
@ -91,18 +91,18 @@ class Connection(object):
|
||||||
def run(self):
|
def run(self):
|
||||||
errors = 0
|
errors = 0
|
||||||
while self._is_running:
|
while self._is_running:
|
||||||
self.idl.wait(self.poller)
|
# If we fail in an Idl call, we could have missed an update
|
||||||
self.poller.fd_wait(self.txns.alert_fileno, poller.POLLIN)
|
|
||||||
# TODO(jlibosva): Remove next line once losing connection to ovsdb
|
|
||||||
# is solved.
|
|
||||||
self.poller.timer_wait(self.timeout * 1000)
|
|
||||||
self.poller.block()
|
|
||||||
# If we fail on a run() call, we could have missed an update
|
|
||||||
# from the server, leaving us out of sync with ovsdb-server.
|
# from the server, leaving us out of sync with ovsdb-server.
|
||||||
# It is not safe to continue without restarting the connection,
|
# It is not safe to continue without restarting the connection,
|
||||||
# though it is likely that the error is unrecoverable, so only try
|
# though it is likely that the error is unrecoverable, so only try
|
||||||
# a few times before bailing completely.
|
# a few times before bailing completely.
|
||||||
try:
|
try:
|
||||||
|
self.idl.wait(self.poller)
|
||||||
|
self.poller.fd_wait(self.txns.alert_fileno, poller.POLLIN)
|
||||||
|
# TODO(jlibosva): Remove next line once losing connection to
|
||||||
|
# ovsdb is solved.
|
||||||
|
self.poller.timer_wait(self.timeout * 1000)
|
||||||
|
self.poller.block()
|
||||||
self.idl.run()
|
self.idl.run()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
# This shouldn't happen, but is possible if there is a bug
|
# This shouldn't happen, but is possible if there is a bug
|
||||||
|
|
Loading…
Reference in New Issue