From: Xuehan Xu Date: Sun, 26 Jul 2026 12:00:02 +0000 (+0800) Subject: crimson/osd/pg_recovery: call on_global_recover on replica-recover-deleted X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6dab4b50345fc1cc3c40890f2cd692450392c081;p=ceph.git 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 --- diff --git a/src/crimson/osd/pg_recovery.cc b/src/crimson/osd/pg_recovery.cc index 9def57150b5..ea768ec8f9b 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);