[tor-commits] [tor/master] Fix a startup time assert caused by periodic events not being initialized.

nickm at torproject.org nickm at torproject.org
Wed Nov 18 15:15:52 UTC 2015


commit 85bb71049ac582e886144fd74fb869f4c7bdc5a8
Author: Yawning Angel <yawning at schwanenlied.me>
Date:   Wed Nov 18 11:27:24 2015 +0000

    Fix a startup time assert caused by periodic events not being initialized.
    
    Loading a on disk bridge descriptor causes a directory download to be
    scheduled, which asserts due to the periodic events not being
    initialized yet.
    
    Fixes bug #17635, not in any released version of tor.
---
 src/or/main.c |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/or/main.c b/src/or/main.c
index 0b8591f..7aeacd1 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -2299,6 +2299,13 @@ do_main_loop(void)
 {
   time_t now;
 
+  /* initialize the periodic events first, so that code that depends on the
+   * events being present does not assert.
+   */
+  if (! periodic_events_initialized) {
+    initialize_periodic_events();
+  }
+
   /* initialize dns resolve map, spawn workers if needed */
   if (dns_init() < 0) {
     if (get_options()->ServerDNSAllowBrokenConfig)
@@ -2401,10 +2408,6 @@ do_main_loop(void)
     tor_assert(second_timer);
   }
 
-  if (! periodic_events_initialized) {
-    initialize_periodic_events();
-  }
-
 #ifdef HAVE_SYSTEMD_209
   uint64_t watchdog_delay;
   /* set up systemd watchdog notification. */



More information about the tor-commits mailing list