From 5ce8182bdb45c41d8c5f9fea173c2ade1a18bfbb Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 25 Jan 2011 18:45:13 -0500 Subject: [PATCH 1/2] Log more about soft-hibernation --- changes/bug2181 | 4 ++++ src/or/hibernate.c | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 changes/bug2181 diff --git a/changes/bug2181 b/changes/bug2181 new file mode 100644 index 0000000000..0a095488ee --- /dev/null +++ b/changes/bug2181 @@ -0,0 +1,4 @@ + o Minor features + - Log a little more clearly about the times at which we're no longer + accepting new connections. Resolves bug 2181. + diff --git a/src/or/hibernate.c b/src/or/hibernate.c index 48a7ce75ba..1878d5d52d 100644 --- a/src/or/hibernate.c +++ b/src/or/hibernate.c @@ -783,7 +783,8 @@ hibernate_begin(hibernate_state_t new_state, time_t now) /* XXX upload rendezvous service descriptors with no intro points */ if (new_state == HIBERNATE_STATE_EXITING) { - log_notice(LD_GENERAL,"Interrupt: will shut down in %d seconds. Interrupt " + log_notice(LD_GENERAL,"Interrupt: we have stopped accepting new " + "connections, and will shut down in %d seconds. Interrupt " "again to exit now.", options->ShutdownWaitLength); shutdown_time = time(NULL) + options->ShutdownWaitLength; } else { /* soft limit reached */ @@ -940,7 +941,8 @@ consider_hibernation(time_t now) if (hibernate_state == HIBERNATE_STATE_LIVE) { if (hibernate_soft_limit_reached()) { log_notice(LD_ACCT, - "Bandwidth soft limit reached; commencing hibernation."); + "Bandwidth soft limit reached; commencing hibernation. " + "No new conncetions will be accepted"); hibernate_begin(HIBERNATE_STATE_LOWBANDWIDTH, now); } else if (accounting_enabled && now < interval_wakeup_time) { format_local_iso_time(buf,interval_wakeup_time); From 1dd98891d74cbd7e4e64b0943254dc4a78fb658e Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Wed, 26 Jan 2011 11:45:37 -0500 Subject: [PATCH 2/2] Explain soft shutdown mode a little better in the accountingmax documentation --- doc/tor.1.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/tor.1.txt b/doc/tor.1.txt index c8608eb845..8fe73b026b 100644 --- a/doc/tor.1.txt +++ b/doc/tor.1.txt @@ -900,7 +900,9 @@ is non-zero): period, or receive more than that number in the period. For example, with AccountingMax set to 1 GB, a server could send 900 MB and receive 800 MB and continue running. It will only hibernate once one of the two reaches 1 - GB. When the number of bytes is exhausted, Tor will hibernate until some + GB. When the number of bytes gets low, Tor will stop accepting new + connections and circuits. When the number of bytes + is exhausted, Tor will hibernate until some time in the next accounting period. To prevent all servers from waking at the same time, Tor will also wait until a random point in each period before waking up. If you have bandwidth cost issues, enabling hibernation