]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd/replicated_recovery_backend: assert that the object to be pulled has... 57719/head
authorXuehan Xu <xxhdx1985126@gmail.com>
Mon, 15 Apr 2024 13:58:02 +0000 (21:58 +0800)
committerMatan Breizman <mbreizma@redhat.com>
Mon, 27 May 2024 10:19:05 +0000 (13:19 +0300)
Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
(cherry picked from commit 453db346383936e4d4640fce6c1f0bf132cb7992)

src/crimson/osd/replicated_recovery_backend.cc

index 0eef687f2c2438b52c08a7e26326c46b722415ea..5a29b1d3353b22bf6095bb883d00f0bec430dc14 100644 (file)
@@ -429,8 +429,12 @@ void ReplicatedRecoveryBackend::prepare_pull(
 
   pg_missing_tracker_t local_missing = pg.get_local_missing();
   const auto missing_iter = local_missing.get_items().find(soid);
-  auto m = pg.get_missing_loc_shards();
-  pg_shard_t fromshard = *(m[soid].begin());
+  auto &m = pg.get_missing_loc_shards();
+  assert(m.contains(soid));
+  auto &locs = m.at(soid);
+  auto iter = locs.begin();
+  assert(iter != locs.end());
+  pg_shard_t fromshard = *(iter);
 
   pull_op.recovery_info =
     set_recovery_info(soid, head_obc->ssc);