summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/bug236965
-rw-r--r--src/or/scheduler_kist.c8
2 files changed, 11 insertions, 2 deletions
diff --git a/changes/bug23696 b/changes/bug23696
new file mode 100644
index 0000000000..11b38fd68a
--- /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 d1726ba345..fea92705d4 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) {