Bläddra i källkod

Merge remote-tracking branch 'andrea/bug8625_prod'

Nick Mathewson 7 år sedan
förälder
incheckning
06e82084d6
4 ändrade filer med 14 tillägg och 14 borttagningar
  1. 4 0
      changes/bug8625
  2. 0 14
      src/or/main.c
  3. 3 0
      src/or/networkstatus.c
  4. 7 0
      src/or/routerlist.c

+ 4 - 0
changes/bug8625

@@ -0,0 +1,4 @@
+  o Bugfixes:
+    - Avoid resetting download status for consensuses hourly, and add a
+      SimulateDirDownloadFailures config option to test behavior when all
+      downloads from directory servers fail.  Fixes bug 8625.

+ 0 - 14
src/or/main.c

@@ -169,9 +169,6 @@ static int can_complete_circuits = 0;
 /** How often do we check for router descriptors that we should download
  * when we have enough directory info? */
 #define LAZY_DESCRIPTOR_RETRY_INTERVAL (60)
-/** How often do we 'forgive' undownloadable router descriptors and attempt
- * to download them again? */
-#define DESCRIPTOR_FAILURE_RESET_INTERVAL (60*60)
 
 /** Decides our behavior when no logs are configured/before any
  * logs have been configured.  For 0, we log notice to stdout as normal.
@@ -1247,7 +1244,6 @@ static int periodic_events_initialized = 0;
 CALLBACK(rotate_onion_key);
 CALLBACK(check_ed_keys);
 CALLBACK(launch_descriptor_fetches);
-CALLBACK(reset_descriptor_failures);
 CALLBACK(rotate_x509_certificate);
 CALLBACK(add_entropy);
 CALLBACK(launch_reachability_tests);
@@ -1279,7 +1275,6 @@ static periodic_event_item_t periodic_events[] = {
   CALLBACK(rotate_onion_key),
   CALLBACK(check_ed_keys),
   CALLBACK(launch_descriptor_fetches),
-  CALLBACK(reset_descriptor_failures),
   CALLBACK(rotate_x509_certificate),
   CALLBACK(add_entropy),
   CALLBACK(launch_reachability_tests),
@@ -1605,15 +1600,6 @@ launch_descriptor_fetches_callback(time_t now, const or_options_t *options)
     return GREEDY_DESCRIPTOR_RETRY_INTERVAL;
 }
 
-static int
-reset_descriptor_failures_callback(time_t now, const or_options_t *options)
-{
-  (void)now;
-  (void)options;
-  router_reset_descriptor_download_failures();
-  return DESCRIPTOR_FAILURE_RESET_INTERVAL;
-}
-
 static int
 rotate_x509_certificate_callback(time_t now, const or_options_t *options)
 {

+ 3 - 0
src/or/networkstatus.c

@@ -147,6 +147,9 @@ networkstatus_reset_download_failures(void)
 {
   int i;
 
+  log_debug(LD_GENERAL,
+            "In networkstatus_reset_download_failures()");
+
   for (i=0; i < N_CONSENSUS_FLAVORS; ++i)
     download_status_reset(&consensus_dl_status[i]);
 

+ 7 - 0
src/or/routerlist.c

@@ -4465,6 +4465,10 @@ void
 routerlist_retry_directory_downloads(time_t now)
 {
   (void)now;
+
+  log_debug(LD_GENERAL,
+            "In routerlist_retry_directory_downloads()");
+
   router_reset_status_download_failures();
   router_reset_descriptor_download_failures();
   reschedule_directory_downloads();
@@ -5277,6 +5281,9 @@ update_extrainfo_downloads(time_t now)
 void
 router_reset_descriptor_download_failures(void)
 {
+  log_debug(LD_GENERAL,
+            "In router_reset_descriptor_download_failures()");
+
   networkstatus_reset_download_failures();
   last_descriptor_download_attempted = 0;
   if (!routerlist)