From: Claudio-Daniel Freire Date: Wed, 20 Jul 2011 10:34:09 +0000 (+0200) Subject: Catch socket timeouts too and retry X-Git-Tag: nepi-3.0.0~359 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=dc703eaeaef78e34fad392b9bb8c894a4de172c9;p=nepi.git Catch socket timeouts too and retry --- diff --git a/src/nepi/util/server.py b/src/nepi/util/server.py index 8fe87064..dbd0b563 100644 --- a/src/nepi/util/server.py +++ b/src/nepi/util/server.py @@ -65,6 +65,11 @@ def eintr_retry(func): continue else: raise + except OSError, e: + if e.errno == errno.EINTR: + continue + else: + raise else: return func(*p, **kw) return rv @@ -178,6 +183,7 @@ class Server(object): try: msg = self.recv_msg(conn) except socket.timeout, e: + self.log_error() break if msg == STOP_MSG: @@ -204,10 +210,12 @@ class Server(object): while '\n' not in chunk: try: chunk = conn.recv(1024) + except socket.timeout: + continue except OSError, e: if e.errno != errno.EINTR: raise - if chunk == '': + else: continue if chunk: data.append(chunk)