From 6d8dfb18feb4ce263453039fc0afdb1462279e9a Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 21 Feb 2013 10:30:08 -0800 Subject: [PATCH] osd: clear recovery state on pg removal This ensures we release our in-progress recovery counters, which prevents recovery from getting blocked indefinitely when a pool removal races with recovery ops. Fixes: #4217 Backport: bobtail Signed-off-by: Sage Weil Reviewed-by: Samuel Just --- src/osd/ReplicatedPG.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index d23db2884ed..becba7afab0 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -6247,6 +6247,10 @@ void ReplicatedPG::on_removal() dout(10) << "on_removal" << dendl; apply_and_flush_repops(false); remove_watchers_and_notifies(); + + clear_primary_state(); + osd->remove_want_pg_temp(info.pgid); + cancel_recovery(); } void ReplicatedPG::on_shutdown() -- 2.47.3