From 6dab4b50345fc1cc3c40890f2cd692450392c081 Mon Sep 17 00:00:00 2001 From: Xuehan Xu Date: Sun, 26 Jul 2026 20:00:02 +0800 Subject: [PATCH] crimson/osd/pg_recovery: call on_global_recover on replica-recover-deleted objects only when it's not missing on the primary too The issue was introduced by 60537bdd2f42fb87c9d4a8b62e9e722231a8842b which didn't fix the issue it was supposed to because of the same error this commit tries to fix. Fixes: https://tracker-origin.ceph.com/issues/78676 Signed-off-by: Xuehan Xu --- src/crimson/osd/pg_recovery.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/crimson/osd/pg_recovery.cc b/src/crimson/osd/pg_recovery.cc index 9def57150b58..ea768ec8f9b5 100644 --- a/src/crimson/osd/pg_recovery.cc +++ b/src/crimson/osd/pg_recovery.cc @@ -348,7 +348,7 @@ RecoveryBackend::interruptible_future<> PGRecovery::prep_object_replica_deletes( trigger, pg->get_recovery_backend()->push_delete(soid, need).then_interruptible( [=, this] { - if (pg->get_peering_state().get_pg_log().get_missing().is_missing(soid)) { + if (!pg->get_peering_state().get_pg_log().get_missing().is_missing(soid)) { object_stat_sum_t stat_diff; stat_diff.num_objects_recovered = 1; on_global_recover(soid, stat_diff, true); -- 2.47.3