From 1751a094d76ac84fbcecfc9816904cbb496bd765 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 23 Oct 2017 17:11:59 -0500 Subject: [PATCH] osd/PrimaryLogPG: clear DEGRADED at recovery completion even if more backfill We may have log recovery *and* backfill to do, but cease to be degraded as soon as the log recovery portion is done. If that's the case, clear the DEGRADED bit so that the PG state is not misleading. Signed-off-by: Sage Weil (cherry picked from commit 3e91fda79d3be771f46394312a6b72ab75660012) --- src/osd/PrimaryLogPG.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index 141053d333ab..123c15a2cb60 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -11418,6 +11418,9 @@ bool PrimaryLogPG::start_recovery_ops( if (state_test(PG_STATE_RECOVERING)) { state_clear(PG_STATE_RECOVERING); state_clear(PG_STATE_FORCED_RECOVERY); + if (get_osdmap()->get_pg_size(info.pgid.pgid) <= acting.size()) { + state_clear(PG_STATE_DEGRADED); + } if (needs_backfill()) { dout(10) << "recovery done, queuing backfill" << dendl; queue_peering_event( -- 2.47.3