The new parallel lc code relies on a vector of indexes to seed
random-order shard processing. This vector was dimensioned to
n (the shard count) - 1--which appears to elide the high index.
Found and reported by Ji Weiqiang <badwolflord@163.com>
Fixes: https://tracker.ceph.com/issues/48255
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
(cherry picked from commit
988c35b374260961842bb8e7514a7f5fc7d7767c)
static inline vector<int> random_sequence(uint32_t n)
{
- vector<int> v(n-1, 0);
+ vector<int> v(n, 0);
std::generate(v.begin(), v.end(),
[ix = 0]() mutable {
return ix++;