From fd334ba8cc9f3dba73431676f311f91733a13f4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 3 Nov 2008 10:55:59 +0100 Subject: [PATCH] Reconnect the socket on socket error for issue480 --- tryton/rpc.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/tryton/rpc.py b/tryton/rpc.py index afb7299ba5..841642c432 100644 --- a/tryton/rpc.py +++ b/tryton/rpc.py @@ -107,6 +107,7 @@ def login(username, password, host, port, database): finally: _SEMAPHORE.release() except socket.error: + _SOCK.reconnect() _USER = 0 _SESSION = '' return -1 @@ -170,9 +171,13 @@ def _execute(blocking, obj, method, *args): _SOCK.send((obj, method, _DATABASE, _USER, _SESSION) + args) result = _SOCK.receive() except socket.error: - _SOCK.reconnect() - _SOCK.send((obj, method, _DATABASE, _USER, _SESSION) + args) - result = _SOCK.receive() + try: + _SOCK.reconnect() + _SOCK.send((obj, method, _DATABASE, _USER, _SESSION) + args) + result = _SOCK.receive() + except socket.error: + _SOCK.reconnect() + raise finally: _SEMAPHORE.release() if key: