From: Xuehan Xu Date: Mon, 15 Apr 2024 13:58:02 +0000 (+0800) Subject: crimson/osd/replicated_recovery_backend: assert that the object to be pulled has... X-Git-Tag: v19.1.1~305^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a94ad2a1302c3b8cf7ca375437d74a9038c1893e;p=ceph.git crimson/osd/replicated_recovery_backend: assert that the object to be pulled has a valid recovery source Signed-off-by: Xuehan Xu (cherry picked from commit 453db346383936e4d4640fce6c1f0bf132cb7992) --- diff --git a/src/crimson/osd/replicated_recovery_backend.cc b/src/crimson/osd/replicated_recovery_backend.cc index 0eef687f2c24..5a29b1d3353b 100644 --- a/src/crimson/osd/replicated_recovery_backend.cc +++ b/src/crimson/osd/replicated_recovery_backend.cc @@ -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);