summaryrefslogtreecommitdiff
path: root/changes/bug6538
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2012-08-09 12:21:37 -0400
committerNick Mathewson <nickm@torproject.org>2012-08-09 12:21:37 -0400
commite106812a778f53760c819ab20a214ac3222b3b15 (patch)
tree38d5ff9ade183c3cfa93a2dd75ecf9a935a6d12c /changes/bug6538
parent91b52a259a271df7ceeea6d8bf7adbd4d7e15a6c (diff)
downloadtor-e106812a778f53760c819ab20a214ac3222b3b15.tar.gz
tor-e106812a778f53760c819ab20a214ac3222b3b15.zip
Change smartlist_choose_node_by_bandwidth to avoid double
This should make our preferred solution to #6538 easier to implement, avoid a bunch of potential nastiness with excessive int-vs-double math, and generally make the code there a little less scary. "But wait!" you say. "Is it really safe to do this? Won't the results come out differently?" Yes, but not much. We now round every weighted bandwidth to the nearest byte before computing on it. This will make every node that had a fractional part of its weighted bandwidth before either slighty more likely or slightly less likely. Further, the rand_bw value was only ever set with integer precision, so it can't accurately sample routers with tiny fractional bandwidth values anyway. Finally, doing repeated double-vs-uint64 comparisons is just plain sad; it will involve an implicit cast to double, which is never a fun thing.
Diffstat (limited to 'changes/bug6538')
-rw-r--r--changes/bug65384
1 files changed, 4 insertions, 0 deletions
diff --git a/changes/bug6538 b/changes/bug6538
new file mode 100644
index 0000000000..1e882eb1cc
--- /dev/null
+++ b/changes/bug6538
@@ -0,0 +1,4 @@
+ o Minor bugfixes:
+ - Switch weighted node selection rule from using a list of doubles
+ to using a list of int64_t. This should make the process slightly
+ easier to debug and maintain. Needed for fix for bug 6538.