From: Brian Warner <warner@lothar.com>
Date: Sat, 14 Jul 2007 02:30:21 +0000 (-0700)
Subject: storage.py: handle num_segments != power-of-two without an assertion
X-Git-Url: https://git.rkrishnan.org/components/status?a=commitdiff_plain;h=9fc687cdfc6e48a39568f660d664fc173c582ac4;p=tahoe-lafs%2Ftahoe-lafs.git

storage.py: handle num_segments != power-of-two without an assertion
---

diff --git a/src/allmydata/storage.py b/src/allmydata/storage.py
index b5acdee4..80196807 100644
--- a/src/allmydata/storage.py
+++ b/src/allmydata/storage.py
@@ -185,7 +185,8 @@ class WriteBucketProxy:
         self._segment_size = segment_size
         self._num_segments = num_segments
 
-        self._segment_hash_size = (2*num_segments - 1) * HASH_SIZE
+        effective_segments = mathutil.next_power_of_k(num_segments,2)
+        self._segment_hash_size = (2*effective_segments - 1) * HASH_SIZE
         # how many share hashes are included in each share? This will be
         # about ln2(num_shares).
         self._share_hash_size = num_share_hashes * (2+HASH_SIZE)