[tor-commits] [tor/master] Rate-limit "No circuits are opened" message to once-per-hour
nickm at torproject.org
nickm at torproject.org
Wed Dec 26 15:07:11 UTC 2012
commit 127cb39ffcacbcd99633671e92d299ef53bbac46
Author: Nick Mathewson <nickm at torproject.org>
Date: Wed Dec 26 10:05:45 2012 -0500
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(-)
diff --git a/changes/bug7799.ratelim b/changes/bug7799.ratelim
new file mode 100644
index 0000000..cb7742c
--- /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 57ecef1..c3495b4 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);
+ }
}
}
More information about the tor-commits
mailing list