From a94ad2a1302c3b8cf7ca375437d74a9038c1893e Mon Sep 17 00:00:00 2001 From: Xuehan Xu Date: Mon, 15 Apr 2024 21:58:02 +0800 Subject: [PATCH] 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) --- src/crimson/osd/replicated_recovery_backend.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/crimson/osd/replicated_recovery_backend.cc b/src/crimson/osd/replicated_recovery_backend.cc index 0eef687f2c243..5a29b1d3353b2 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); -- 2.39.5