Explorar el Código

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
(cherry picked from commit 46e4323bed)
tags/0.10.5^0
Terry Wilson hace 1 año
padre
commit
f8776cfc9e
Se han modificado 1 ficheros con 7 adiciones y 7 borrados
  1. +7
    -7
      ovsdbapp/backend/ovs_idl/connection.py

+ 7
- 7
ovsdbapp/backend/ovs_idl/connection.py Ver fichero

@@ -91,18 +91,18 @@ class Connection(object):
def run(self):
errors = 0
while self._is_running:
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()
# If we fail on a run() call, we could have missed an update
# If we fail in an Idl call, we could have missed an update
# from the server, leaving us out of sync with ovsdb-server.
# It is not safe to continue without restarting the connection,
# though it is likely that the error is unrecoverable, so only try
# a few times before bailing completely.
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()
except Exception as e:
# This shouldn't happen, but is possible if there is a bug


Cargando…
Cancelar
Guardar