summaryrefslogtreecommitdiffstats
path: root/src/crimson
diff options
context:
space:
mode:
authorXuehan Xu <xuxuehan@qianxin.com>2024-11-02 15:11:02 +0100
committerXuehan Xu <xuxuehan@qianxin.com>2024-11-02 15:12:35 +0100
commit5cf1e93ad44b57fac9217e844921b602d4bf0e78 (patch)
treec0f74fac7baf4fc3b67a5e8c7334b4cb933fdcd0 /src/crimson
parentMerge pull request #60584 from zdover23/wip-doc-2024-11-01-whereas (diff)
downloadceph-5cf1e93ad44b57fac9217e844921b602d4bf0e78.tar.xz
ceph-5cf1e93ad44b57fac9217e844921b602d4bf0e78.zip
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 <xuxuehan@qianxin.com>
Diffstat (limited to 'src/crimson')
-rw-r--r--src/crimson/osd/replicated_recovery_backend.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/crimson/osd/replicated_recovery_backend.cc b/src/crimson/osd/replicated_recovery_backend.cc
index 76f24196b51..31f05836b8e 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<>();
});
});