From 127cb39ffcacbcd99633671e92d299ef53bbac46 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Wed, 26 Dec 2012 10:05:45 -0500 Subject: [PATCH] Rate-limit "No circuits are opened" message to once-per-hour mr-4 reports on #7799 that he was seeing it several times per second, which suggests that things had gone very wrong. This isn't a real fix, but it should make Tor usable till we can figure out the real issue. --- changes/bug7799.ratelim | 6 ++++++ src/or/circuituse.c | 11 ++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 changes/bug7799.ratelim diff --git a/changes/bug7799.ratelim b/changes/bug7799.ratelim new file mode 100644 index 0000000000..cb7742c5da --- /dev/null +++ b/changes/bug7799.ratelim @@ -0,0 +1,6 @@ + o Minor bugfixes: + - Rate-limit the "No circuits are opened. Relaxed timeout for a + circuit with channel state open..." message to once per hour to + keep it from filling the notice logs. Mitigates bug 7799 but does + not fix the underlying cause. Bugfix on 0.2.4.7-alpha. + diff --git a/src/or/circuituse.c b/src/or/circuituse.c index 57ecef1ee4..c3495b4402 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -478,13 +478,18 @@ circuit_expire_building(void) } continue; } else { - log_notice(LD_CIRC, + static ratelim_t relax_timeout_limit = RATELIM_INIT(3600); + char *m; + if ((m = rate_limit_log(&relax_timeout_limit, approx_time()))) { + log_notice(LD_CIRC, "No circuits are opened. Relaxed timeout for " "a circuit with channel state %s to %ldms. " "However, it appears the circuit has timed out anyway. " - "%d guards are live. ", + "%d guards are live. %s", channel_state_to_string(victim->n_chan->state), - (long)circ_times.close_ms, num_live_entry_guards(0)); + (long)circ_times.close_ms, num_live_entry_guards(0), m); + tor_free(m); + } } }