Fix default bw weights with new consensus method

See #14881
This commit is contained in:
Matt Traudt 2016-09-06 12:09:13 -04:00 committed by Nick Mathewson
parent 39375db3dc
commit 909ee0e55f
3 changed files with 14 additions and 1 deletions

4
changes/14881 Normal file
View File

@ -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.

View File

@ -1367,6 +1367,11 @@ networkstatus_compute_consensus(smartlist_t *votes,
consensus_method = MAX_SUPPORTED_CONSENSUS_METHOD; 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 /* Compute medians of time-related things, and figure out how many
* routers we might need to talk about. */ * routers we might need to talk about. */
{ {

View File

@ -55,7 +55,7 @@
#define MIN_SUPPORTED_CONSENSUS_METHOD 13 #define MIN_SUPPORTED_CONSENSUS_METHOD 13
/** The highest consensus method that we currently support. */ /** 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 /** Lowest consensus method where microdesc consensuses omit any entry
* with no microdesc. */ * with no microdesc. */
@ -111,6 +111,10 @@
* entries. */ * entries. */
#define MIN_METHOD_FOR_RS_PROTOCOLS 25 #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 >= /** Default bandwidth to clip unmeasured bandwidths to using method >=
* MIN_METHOD_TO_CLIP_UNMEASURED_BW. (This is not a consensus method; do not * MIN_METHOD_TO_CLIP_UNMEASURED_BW. (This is not a consensus method; do not
* get confused with the above macros.) */ * get confused with the above macros.) */