From: Xuehan Xu Date: Sat, 2 Nov 2024 14:11:02 +0000 (+0800) Subject: crimson/osd/replicated_recovery_backend: call on_global_recover() only X-Git-Tag: v20.0.0~452^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5cf1e93ad44b57fac9217e844921b602d4bf0e78;p=ceph.git crimson/osd/replicated_recovery_backend: call on_global_recover() only when all replicas and the primary have been recovered Fixes: https://tracker.ceph.com/issues/68806 Signed-off-by: Xuehan Xu --- diff --git a/src/crimson/osd/replicated_recovery_backend.cc b/src/crimson/osd/replicated_recovery_backend.cc index 76f24196b51f..31f05836b8ea 100644 --- a/src/crimson/osd/replicated_recovery_backend.cc +++ b/src/crimson/osd/replicated_recovery_backend.cc @@ -306,7 +306,10 @@ ReplicatedRecoveryBackend::recover_delete( } return seastar::make_ready_future<>(); }).then_interruptible([this, soid, &stat_diff] { - pg.get_recovery_handler()->on_global_recover(soid, stat_diff, true); + const auto &missing = pg.get_peering_state().get_pg_log().get_missing(); + if (!missing.is_missing(soid)) { + pg.get_recovery_handler()->on_global_recover(soid, stat_diff, true); + } return seastar::make_ready_future<>(); }); });