changing the line below to
<pre>
      weight[(i*2)%weight.size()] = 0;
</pre>
triggers a failure:
<pre>
(18/27 out) 3 -> [2147483647,13,19,9,15,25,23]
 13 moved from 6 to 1
 23 moved from 0 to 6
 2 moved, 3 changed
test/crush/indep.cc:232: Failure
Expected: (moved) <= (1), actual: 2 vs 1
<pre>
is it to be expected when the missing OSDs are more uniformly distributed among buckets ?