diff --git a/tryton/rpc.py b/tryton/rpc.py index ed4de428a4..0e7d32ce78 100644 --- a/tryton/rpc.py +++ b/tryton/rpc.py @@ -106,10 +106,10 @@ def login(username, password, host, port, database): res = _SOCK.receive() finally: _SEMAPHORE.release() - except socket.error: + except (socket.error, RuntimeError): try: _SOCK.reconnect() - except socket.error: + except (socket.error, RuntimeError): pass _USER = 0 _SESSION = '' @@ -173,12 +173,12 @@ def _execute(blocking, obj, method, *args): try: _SOCK.send((obj, method, _DATABASE, _USER, _SESSION) + args) result = _SOCK.receive() - except socket.error: + except (socket.error, RuntimeError): try: _SOCK.reconnect() _SOCK.send((obj, method, _DATABASE, _USER, _SESSION) + args) result = _SOCK.receive() - except socket.error: + except (socket.error, RuntimeError): _SOCK.reconnect() raise finally: