diff options
author | Nick Mathewson <nickm@torproject.org> | 2017-11-06 09:48:51 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2017-11-06 09:48:51 -0500 |
commit | c80293706fe16c052efef6653079163fc117029a (patch) | |
tree | ecffd93ce9c0bf4bfe66fe3e1f4e71644f0956e6 | |
parent | f46cdb3ff85be4c4241928bfd3f558eb878cff28 (diff) | |
parent | 01e984870a7e1db2722e85fe43af7bcb4755c2d4 (diff) | |
download | tor-c80293706fe16c052efef6653079163fc117029a.tar.gz tor-c80293706fe16c052efef6653079163fc117029a.zip |
Merge remote-tracking branch 'public/bug23318_029' into maint-0.3.2
-rw-r--r-- | changes/bug23318 | 7 | ||||
-rw-r--r-- | src/or/routerlist.c | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/changes/bug23318 b/changes/bug23318 new file mode 100644 index 0000000000..32c85eb194 --- /dev/null +++ b/changes/bug23318 @@ -0,0 +1,7 @@ + o Minor bugfixes (path selection): + - When selecting relays by bandwidth, avoid a rounding error that + could sometimes cause load to be imbalanced incorrectly. Previously, + we would always round upwards; now, we round towards the nearest + integer. This had the biggest effect when a relay's weight adjustments + should have given it weight 0, but it got weight 1 instead. + Fixes bug 23318; bugfix on 0.2.4.3-alpha. diff --git a/src/or/routerlist.c b/src/or/routerlist.c index c7c1092539..f0bd343f45 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -2706,7 +2706,7 @@ compute_weighted_bandwidths(const smartlist_t *sl, final_weight = weight*this_bw; } - bandwidths[node_sl_idx] = final_weight + 0.5; + bandwidths[node_sl_idx] = final_weight; } SMARTLIST_FOREACH_END(node); log_debug(LD_CIRC, "Generated weighted bandwidths for rule %s based " |