]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgwlc: correctly dimension lc shard index vector 38131/head
authorMatt Benjamin <mbenjamin@redhat.com>
Tue, 17 Nov 2020 01:20:05 +0000 (20:20 -0500)
committerMatt Benjamin <mbenjamin@redhat.com>
Tue, 17 Nov 2020 13:03:23 +0000 (08:03 -0500)
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>
src/rgw/rgw_lc.cc

index c49e8c7e728db36b715d8ca3071546fb61288566..f6aa75048371ba614ab6eca7dd5792cd23e75765 100644 (file)
@@ -1658,7 +1658,7 @@ int RGWLC::list_lc_progress(string& marker, uint32_t max_entries,
 
 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++;