aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2012-03-30 15:38:16 -0400
committerNick Mathewson <nickm@torproject.org>2012-03-30 15:38:16 -0400
commitcc3515780529277a5f9d788e8a256798e5cd144f (patch)
tree178e2a0d5b1aa6411cf5873a82446f438ee429ac
parent458718d4975661831fa21d9f2653932e17c1bae0 (diff)
downloadtor-cc3515780529277a5f9d788e8a256798e5cd144f.tar
tor-cc3515780529277a5f9d788e8a256798e5cd144f.tar.gz
Twiddle ROUTER_{MAX_COSMETIC_TIME_DIFFERENCE,MAX_AGE_TO_PUBLISH}
This is ticket 2479. Roger's original explanation was: We have a series of bugs where relays publish a descriptor within 12 hours of their last descriptor, but the authorities drop it because it's not different "enough" from the last one and it's too close to the last one. The original goal of this idea was to a) reduce the number of new descriptors authorities accept (and thus have to store) and b) reduce the total number of descriptors that clients and mirrors fetch. It's a defense against bugs where relays publish a new descriptor every minute. Now that we're putting out one consensus per hour, we're doing better at the total damage that can be caused by 'b'. There are broader-scale design changes that would help here, and we've had a trac entry open for years about how relays should recognize that they're not in the consensus, or recognize when their publish failed, and republish sooner. In the mean time, I think we should change some of the parameters to make the problem less painful.
-rw-r--r--changes/bug27498
-rw-r--r--src/or/or.h2
-rw-r--r--src/or/routerlist.c2
3 files changed, 10 insertions, 2 deletions
diff --git a/changes/bug2749 b/changes/bug2749
new file mode 100644
index 000000000..964a82885
--- /dev/null
+++ b/changes/bug2749
@@ -0,0 +1,8 @@
+ o Changed parameters (authorities):
+ - Authorities are now a little more lenient at accepting older
+ router descriptors, or newer router descriptors that don't make
+ big changes. This should help ameliorate past and future issues
+ where routers think they have uploaded valid descriptors, but the
+ authorities don't think so. Fix for ticket 2479.
+
+
diff --git a/src/or/or.h b/src/or/or.h
index 4996fd33a..6053acb5e 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -187,7 +187,7 @@
#define ROUTER_MAX_AGE (60*60*48)
/** How old can a router get before we (as a server) will no longer
* consider it live? In seconds. */
-#define ROUTER_MAX_AGE_TO_PUBLISH (60*60*20)
+#define ROUTER_MAX_AGE_TO_PUBLISH (60*60*24)
/** How old do we let a saved descriptor get before force-removing it? */
#define OLD_ROUTER_DESC_MAX_AGE (60*60*24*5)
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index 160f340dc..a64b93f3a 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -5082,7 +5082,7 @@ router_reset_descriptor_download_failures(void)
/** Any changes in a router descriptor's publication time larger than this are
* automatically non-cosmetic. */
-#define ROUTER_MAX_COSMETIC_TIME_DIFFERENCE (12*60*60)
+#define ROUTER_MAX_COSMETIC_TIME_DIFFERENCE (2*60*60)
/** We allow uptime to vary from how much it ought to be by this much. */
#define ROUTER_ALLOW_UPTIME_DRIFT (6*60*60)