commit 909ee0e55fa7f03b8b85bc220ba11d91cb495d06 Author: Matt Traudt sirmatt@ksu.edu Date: Tue Sep 6 12:09:13 2016 -0400
Fix default bw weights with new consensus method
See #14881 --- changes/14881 | 4 ++++ src/or/dirvote.c | 5 +++++ src/or/dirvote.h | 6 +++++- 3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/changes/14881 b/changes/14881 new file mode 100644 index 0000000..a8ca9c9 --- /dev/null +++ b/changes/14881 @@ -0,0 +1,4 @@ + o Minor bugfixes (consensus weight): + - Add new consensus method that initializes bw weights to 1 instead of 0. This + prevents a zero weight from making it all the way to the end (happens in + small testing networks) and causing an error. Fixes bug 14881. diff --git a/src/or/dirvote.c b/src/or/dirvote.c index fe66469..4a955e3 100644 --- a/src/or/dirvote.c +++ b/src/or/dirvote.c @@ -1367,6 +1367,11 @@ networkstatus_compute_consensus(smartlist_t *votes, consensus_method = MAX_SUPPORTED_CONSENSUS_METHOD; }
+ if (consensus_method >= MIN_METHOD_FOR_INIT_BW_WEIGHTS_ONE) { + G = M = E = D = 1; + T = 4; + } + /* Compute medians of time-related things, and figure out how many * routers we might need to talk about. */ { diff --git a/src/or/dirvote.h b/src/or/dirvote.h index efd233e..3347346 100644 --- a/src/or/dirvote.h +++ b/src/or/dirvote.h @@ -55,7 +55,7 @@ #define MIN_SUPPORTED_CONSENSUS_METHOD 13
/** The highest consensus method that we currently support. */ -#define MAX_SUPPORTED_CONSENSUS_METHOD 25 +#define MAX_SUPPORTED_CONSENSUS_METHOD 26
/** Lowest consensus method where microdesc consensuses omit any entry * with no microdesc. */ @@ -111,6 +111,10 @@ * entries. */ #define MIN_METHOD_FOR_RS_PROTOCOLS 25
+/** Lowest consensus method where authorities initialize bandwidth weights to 1 + * instead of 0. See #14881 */ +#define MIN_METHOD_FOR_INIT_BW_WEIGHTS_ONE 26 + /** Default bandwidth to clip unmeasured bandwidths to using method >= * MIN_METHOD_TO_CLIP_UNMEASURED_BW. (This is not a consensus method; do not * get confused with the above macros.) */
tor-commits@lists.torproject.org