From: Shraddha Agrawal Date: Tue, 17 Feb 2026 09:35:11 +0000 (+0530) Subject: crimson/osd: clear peer_missing entried for deleted objects X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b2cd46de948c8d3b145421115208acbd2b4c8ec5;p=ceph-ci.git crimson/osd: clear peer_missing entried for deleted objects Signed-off-by: Shraddha Agrawal --- diff --git a/src/crimson/osd/pg.cc b/src/crimson/osd/pg.cc index 66adb8ff1e0..316a738c55c 100644 --- a/src/crimson/osd/pg.cc +++ b/src/crimson/osd/pg.cc @@ -963,6 +963,18 @@ void PG::enqueue_delete_for_backfill( assert(recovery_handler); assert(recovery_handler->backfill_state); auto backfill_state = recovery_handler->backfill_state.get(); + // Clear peer_missing entries for the given deleted object. These peer_missing entries + // were added previously by prepare_backfill_for_missing() when the object was enqueued for push. + // Why is this needed? + // Since the object was deleted before it could be backfilled on peers, we do not need to + // backfill the object anymore. This means the peer_missing entry is no more valid and + // needs to be deleted. + for (auto &peer : peers) { + pg_missing_item item; + if (peering_state.get_peer_missing(peer).is_missing(obj, &item)) { + peering_state.on_peer_recover(peer, obj, item.need); + } + } backfill_state->enqueue_standalone_delete(obj, v, peers); }