[tor-commits] [tor/maint-0.3.2] sched: Downgrade warning log to info in KIST

nickm at torproject.org nickm at torproject.org
Mon Dec 4 18:19:00 UTC 2017


commit ff6c8cf8617637e0fef28268a3e8ee0b1b4d98fb
Author: David Goulet <dgoulet at torproject.org>
Date:   Mon Dec 4 12:22:02 2017 -0500

    sched: Downgrade warning log to info in KIST
    
    Some platforms don't have good monotonic time support so don't warn when the
    diff between the last run of the scheduler time and now is negative. The
    scheduler recovers properly from this so no need to be noisy.
    
    Fixes #23696
    
    Signed-off-by: David Goulet <dgoulet at torproject.org>
---
 changes/bug23696        | 5 +++++
 src/or/scheduler_kist.c | 8 ++++++--
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/changes/bug23696 b/changes/bug23696
new file mode 100644
index 000000000..11b38fd68
--- /dev/null
+++ b/changes/bug23696
@@ -0,0 +1,5 @@
+  o Minor bugfix (KIST scheduler):
+    - Downgrade a warning to log info when the monotonic time diff is
+      negative. This can happen on platform not supporting monotonic time. The
+      scheduler recovers from this without any problem. Fixes ticket 23969;
+      bugfix on 0.3.2.1-alpha.
diff --git a/src/or/scheduler_kist.c b/src/or/scheduler_kist.c
index d1726ba34..fea92705d 100644
--- a/src/or/scheduler_kist.c
+++ b/src/or/scheduler_kist.c
@@ -525,9 +525,13 @@ kist_scheduler_schedule(void)
   monotime_get(&now);
 
   /* If time is really monotonic, we can never have now being smaller than the
-   * last scheduler run. The scheduler_last_run at first is set to 0. */
+   * last scheduler run. The scheduler_last_run at first is set to 0.
+   * Unfortunately, not all platforms guarantee monotonic time so we log at
+   * info level but don't make it more noisy. */
   diff = monotime_diff_msec(&scheduler_last_run, &now);
-  IF_BUG_ONCE(diff < 0) {
+  if (diff < 0) {
+    log_info(LD_SCHED, "Monotonic time between now and last run of scheduler "
+                       "is negative: %" PRId64 ". Setting diff to 0.", diff);
     diff = 0;
   }
   if (diff < sched_run_interval) {



More information about the tor-commits mailing list