diff options
author | Xuehan Xu <xuxuehan@qianxin.com> | 2024-11-02 15:11:02 +0100 |
---|---|---|
committer | Xuehan Xu <xuxuehan@qianxin.com> | 2024-11-02 15:12:35 +0100 |
commit | 5cf1e93ad44b57fac9217e844921b602d4bf0e78 (patch) | |
tree | c0f74fac7baf4fc3b67a5e8c7334b4cb933fdcd0 /src/crimson | |
parent | Merge pull request #60584 from zdover23/wip-doc-2024-11-01-whereas (diff) | |
download | ceph-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.cc | 5 |
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<>(); }); }); |