Commit ec05e64a authored by Mike Perry's avatar Mike Perry
Browse files

Tweak values for when to discard all of our history.

This seems to be happening to me a lot on a garbage DSL line.
We may need to come up with 2 threshholds: a high short onehop
count and a lower longer count.
parent b918cd8f
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -753,10 +753,8 @@ circuit_build_times_network_timeout(circuit_build_times_t *cbt,
  if (cbt->liveness.network_last_live <= start_time &&
          start_time <= (now - cbt->timeout_ms/1000.0)) {
    cbt->liveness.nonlive_timeouts++;
  }

  /* Check for one-hop timeout */
  if (did_onehop) {
  } else if (did_onehop) {
    /* Count a one-hop timeout */
    cbt->liveness.timeouts_after_firsthop[cbt->liveness.after_firsthop_idx]=1;
    cbt->liveness.after_firsthop_idx++;
    cbt->liveness.after_firsthop_idx %= RECENT_CIRCUITS;
@@ -823,7 +821,7 @@ circuit_build_times_network_check_changed(circuit_build_times_t *cbt)
    timeout_count += cbt->liveness.timeouts_after_firsthop[i];
  }

  /* If 75% of our recent circuits are timing out after the first hop,
  /* If 80% of our recent circuits are timing out after the first hop,
   * we need to re-estimate a new initial alpha and timeout. */
  if (timeout_count < MAX_RECENT_TIMEOUT_COUNT) {
    return 0;
+1 −1
Original line number Diff line number Diff line
@@ -2927,7 +2927,7 @@ typedef uint32_t build_time_t;
 * This tells us to abandon timeout history and set
 * the timeout back to BUILD_TIMEOUT_INITIAL_VALUE.
 */
#define MAX_RECENT_TIMEOUT_COUNT (lround(RECENT_CIRCUITS*0.75))
#define MAX_RECENT_TIMEOUT_COUNT (lround(RECENT_CIRCUITS*0.8))

/** Information about the state of our local network connection */
typedef struct {