[tor-commits] [chutney/master] Don't burn through a client's HSDirs too fast in hs-min

teor at torproject.org teor at torproject.org
Mon Jul 18 02:55:52 UTC 2016


commit aad22037a2498697b81fdf74c9ece4dc21a08d30
Author: teor (Tim Wilson-Brown) <teor2345 at gmail.com>
Date:   Mon Jul 18 12:53:46 2016 +1000

    Don't burn through a client's HSDirs too fast in hs-min
---
 lib/chutney/Traffic.py | 7 ++++---
 networks/hs-min        | 4 +++-
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/lib/chutney/Traffic.py b/lib/chutney/Traffic.py
index c118289..881cac7 100644
--- a/lib/chutney/Traffic.py
+++ b/lib/chutney/Traffic.py
@@ -291,11 +291,12 @@ class Source(Peer):
         else:
             debug("BUG: sent no bytes")
             self._sent_no_bytes += 1
-            if self._sent_no_bytes >= 10:
+            # We can't retry too fast, otherwise clients burn all their HSDirs
+            if self._sent_no_bytes >= 3:
                 print("Send no data %d times. Stalled." %
                       (self._sent_no_bytes))
-                sys.exit(-1)
-            time.sleep(1)
+                return -1
+            time.sleep(3)
         self.outbuf = self.outbuf[n:]
         if self.state == self.CONNECTING_THROUGH_PROXY:
             return 1  # Keep us around.
diff --git a/networks/hs-min b/networks/hs-min
index e7b7403..73873a8 100644
--- a/networks/hs-min
+++ b/networks/hs-min
@@ -11,7 +11,9 @@ HS = Node(tag="h", hs=1, torrc="hs.tmpl")
 # connections:
 # a minimum path length of 3, plus the client-nominated rendezvous point,
 # plus a seperate introduction point
-NODES = Authority.getN(3) + NonExitRelay.getN(2) + \
+# But we use 6 HSDirs: when the hidden service is not up, the client fails to
+# find the descriptor at the first 3-5 HSDirs
+NODES = Authority.getN(3) + NonExitRelay.getN(3) + \
         Client.getN(1) + HS.getN(1)
 
 ConfigureNodes(NODES)





More information about the tor-commits mailing list