[tor-commits] [stem/master] Single retry for socket connection

atagar at torproject.org atagar at torproject.org
Tue May 29 01:08:25 UTC 2012


commit 72aed261dceb560d05563fab1af4e6f549e2bdfd
Author: Damian Johnson <atagar at torproject.org>
Date:   Mon May 28 15:23:52 2012 -0700

    Single retry for socket connection
    
    I just had integ tests fail due to an interrupt while trying to connect to the
    tor control socket. This is the first time that I've seen it, so this isn't
    much of a concern, but connecting to a socket is idempotent so we can do with
    retrying it once if we fail.
---
 stem/socket.py |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/stem/socket.py b/stem/socket.py
index 6f0bfda..5abe902 100644
--- a/stem/socket.py
+++ b/stem/socket.py
@@ -206,7 +206,15 @@ class ControlSocket:
         self._socket_file = self._socket.makefile()
         self._is_alive = True
         
-        self._connect()
+        # It's possable for this to have a transient failure...
+        # SocketError: [Errno 4] Interrupted system call
+        #
+        # It's safe to retry, so give it another try if it fails.
+        
+        try:
+          self._connect()
+        except SocketError:
+          self._connect() # single retry
   
   def close(self):
     """





More information about the tor-commits mailing list