[tor-commits] [tor/master] Fix default bw weights with new consensus method

nickm at torproject.org nickm at torproject.org
Wed Oct 26 20:41:39 UTC 2016


commit 909ee0e55fa7f03b8b85bc220ba11d91cb495d06
Author: Matt Traudt <sirmatt at 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.) */





More information about the tor-commits mailing list