Browse Source

Add another 8387 diagnostic

When we run into bug 8387 (if we run into it again), report when we
last called circuit_expire_old_circuits_clientside().  This will let
us know -- if my fix for 8387 doesn't work -- whether my diagnosis
was at least correct.

Suggested by Andrea.
Nick Mathewson 9 years ago
parent
commit
32495ee309
1 changed files with 9 additions and 0 deletions
  1. 9 0
      src/or/circuituse.c

+ 9 - 0
src/or/circuituse.c

@@ -783,6 +783,10 @@ circuit_expire_building(void)
   }
 }
 
+/** For debugging #8387: track when we last called
+ * circuit_expire_old_circuits_clientside. */
+static time_t last_expired_clientside_circuits = 0;
+
 /**
  * As a diagnostic for bug 8387, log information about how many one-hop
  * circuits we have around that have been there for at least <b>age</b>
@@ -894,6 +898,10 @@ circuit_log_ancient_one_hop_circuits(int age)
     }
   } SMARTLIST_FOREACH_END(ocirc);
 
+  log_notice(LD_HEARTBEAT, "It has been %ld seconds since I last called "
+             "circuit_expire_old_circuits_clientside().",
+             (long)(now - last_expired_clientside_circuits));
+
  done:
   smartlist_free(log_these);
 }
@@ -1220,6 +1228,7 @@ circuit_expire_old_circuits_clientside(void)
 
   tor_gettimeofday(&now);
   cutoff = now;
+  last_expired_clientside_circuits = now.tv_sec;
 
   if (! circuit_build_times_disabled() &&
       circuit_build_times_needs_circuits(get_circuit_build_times())) {