[tor-commits] [tor/master] Don't immediately count cannibalized circs as used.

andrea at torproject.org andrea at torproject.org
Tue Jan 29 00:18:36 UTC 2013


commit a2db17a1aab77c4183f589815800a779a5f24524
Author: Mike Perry <mikeperry-git at fscked.org>
Date:   Fri Jan 18 19:34:01 2013 -0800

    Don't immediately count cannibalized circs as used.
    
    Since they use RELAY_EARLY (which can be seen by all hops on the path),
    it's not safe to say they actually count as a successful use.
    
    There are also problems with trying to allow them to finish extending due to
    the circuit purpose state machine logic. It is way less complicated (and
    possibly more semantically coherent) to simply wait until we actually try to
    do something with them before claiming we 'used' them.
    
    Also, we shouldn't call timed out circuits 'used' either, for semantic
    consistency.
---
 src/or/circuitbuild.c |    7 +------
 src/or/circuituse.c   |   14 +-------------
 2 files changed, 2 insertions(+), 19 deletions(-)

diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index 435ccd9..8880f14 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -823,9 +823,6 @@ circuit_send_next_onion_skin(origin_circuit_t *circ)
 
       /* We're done with measurement circuits here. Just close them */
       if (circ->base_.purpose == CIRCUIT_PURPOSE_C_MEASURE_TIMEOUT) {
-        /* If a measurement circ ever gets back to us, consider it
-         * succeeded for path bias */
-        circ->path_state = PATH_STATE_USE_SUCCEEDED;
         circuit_mark_for_close(TO_CIRCUIT(circ), END_CIRC_REASON_FINISHED);
       }
       return 0;
@@ -3140,9 +3137,7 @@ circuit_extend_to_new_exit(origin_circuit_t *circ, extend_info_t *exit)
     return -1;
   }
 
-  /* Set timestamp_dirty, so we can check it for path use bias */
-  if (!circ->base_.timestamp_dirty)
-    circ->base_.timestamp_dirty = time(NULL);
+  // XXX: Should cannibalized circuits be dirty or not? Not easy to say..
 
   return 0;
 }
diff --git a/src/or/circuituse.c b/src/or/circuituse.c
index d0b1b49..0b2fe9e 100644
--- a/src/or/circuituse.c
+++ b/src/or/circuituse.c
@@ -668,18 +668,6 @@ circuit_expire_building(void)
           circuit_build_times_set_timeout(&circ_times);
         }
       }
-
-      if (TO_ORIGIN_CIRCUIT(victim)->has_opened &&
-          victim->purpose != CIRCUIT_PURPOSE_PATH_BIAS_TESTING) {
-        /* For path bias: we want to let these guys live for a while
-         * so we get a chance to test them. */
-        log_info(LD_CIRC,
-                 "Allowing cannibalized circuit %d time to finish building "
-                 "as a pathbias testing circ.",
-                 TO_ORIGIN_CIRCUIT(victim)->global_identifier);
-        circuit_change_purpose(victim, CIRCUIT_PURPOSE_PATH_BIAS_TESTING);
-        continue; /* It now should have a longer timeout next time */
-      }
     }
 
     /* If this is a hidden service client circuit which is far enough
@@ -1517,7 +1505,7 @@ circuit_launch_by_extend_info(uint8_t purpose,
          * If we decide to probe the initial portion of these circs,
          * (up to the adversaries final hop), we need to remove this.
          */
-        circ->path_state = PATH_STATE_USE_SUCCEEDED;
+
         /* This must be called before the purpose change */
         pathbias_check_close(circ, END_CIRC_REASON_FINISHED);
       }





More information about the tor-commits mailing list