From 62002a387da15bcc64b5a5b467569825e1ebd38c Mon Sep 17 00:00:00 2001 From: Josh Durgin Date: Thu, 13 Jul 2017 19:29:50 -0400 Subject: [PATCH] osd/PrimaryLogPG: guard lost_delete missing_loc change by feature flag With deletes during recovery instead of during log processing, we need to keep the entry in missing_loc. Signed-off-by: Josh Durgin --- src/osd/PrimaryLogPG.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index dd6e4ef852d..797e1b07868 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -10592,8 +10592,15 @@ void PrimaryLogPG::mark_all_unfound_lost( std::move(manager), boost::optional >( [this, oids, con, num_unfound, tid]() { - for (auto oid: oids) + if (perform_deletes_during_peering()) { + for (auto oid : oids) { + // clear old locations - merge_new_log_entries will have + // handled rebuilding missing_loc for each of these + // objects if we have the RECOVERY_DELETES flag missing_loc.recovered(oid); + } + } + for (auto& p : waiting_for_unreadable_object) { release_backoffs(p.first); } -- 2.39.5