mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 14:23:30 +01:00
sched: Rate limit scheduler_bug_occurred()
Just in case we end up hitting a SCHED_BUG() multiple times, rate limit the log warning. Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
parent
52050bb2c6
commit
6dc591a024
@ -690,10 +690,21 @@ scheduler_bug_occurred(const channel_t *chan)
|
|||||||
outbuf_len);
|
outbuf_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
log_warn(LD_BUG, "%s Num pending channels: %d. Channel in pending list: %s",
|
{
|
||||||
(chan != NULL) ? buf : "No channel in bug context.",
|
char *msg;
|
||||||
smartlist_len(channels_pending),
|
/* Rate limit every 60 seconds. If we start seeing this every 60 sec, we
|
||||||
(smartlist_pos(channels_pending, chan) == -1) ? "no" : "yes");
|
* know something is stuck/wrong. It *should* be loud but not too much. */
|
||||||
|
static ratelim_t rlimit = RATELIM_INIT(60);
|
||||||
|
if ((msg = rate_limit_log(&rlimit, approx_time()))) {
|
||||||
|
log_warn(LD_BUG, "%s Num pending channels: %d. "
|
||||||
|
"Channel in pending list: %s.%s",
|
||||||
|
(chan != NULL) ? buf : "No channel in bug context.",
|
||||||
|
smartlist_len(channels_pending),
|
||||||
|
(smartlist_pos(channels_pending, chan) == -1) ? "no" : "yes",
|
||||||
|
msg);
|
||||||
|
tor_free(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef TOR_UNIT_TESTS
|
#ifdef TOR_UNIT_TESTS
|
||||||
|
Loading…
Reference in New Issue
Block a user