[tor-commits] [tor/master] Add rate-limited log message to bug5263 fix
nickm at torproject.org
nickm at torproject.org
Wed Jun 13 20:30:29 UTC 2012
commit 9282c88998f80a027b5260472bf21125693a15bc
Author: Nick Mathewson <nickm at torproject.org>
Date: Tue May 15 10:22:17 2012 -0400
Add rate-limited log message to bug5263 fix
Initially I said, "I claim that we shouldn't be reading and marked;
let's see if I'm right." But Rob finds that it does.
---
src/or/main.c | 18 ++++++++++++++----
1 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/or/main.c b/src/or/main.c
index a5ad1d9..3e913d9 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -854,14 +854,24 @@ conn_close_if_marked(int i)
will be re-added on next token bucket refill. Prevents busy Libevent
loops where we keep ending up here and returning 0 until we are no
longer blocked on bandwidth. */
- if (connection_is_reading(conn)) {
- conn->read_blocked_on_bw = 1;
- connection_stop_reading(conn);
- }
if (connection_is_writing(conn)) {
conn->write_blocked_on_bw = 1;
connection_stop_writing(conn);
}
+ if (connection_is_reading(conn)) {
+#define MARKED_READING_RATE 180
+ static ratelim_t marked_read_lim = RATELIM_INIT(MARKED_READING_RATE);
+ char *m;
+ if ((m = rate_limit_log(&marked_read_lim, now))) {
+ log_warn(LD_BUG, "Marked connection (fd %d, type %s, state %s) "
+ "is still reading; that shouldn't happen.%s",
+ (int)conn->s, conn_type_to_string(conn->type),
+ conn_state_to_string(conn->type, conn->state), m);
+ tor_free(m);
+ }
+ conn->read_blocked_on_bw = 1;
+ connection_stop_reading(conn);
+ }
}
return 0;
}
More information about the tor-commits
mailing list