From: Sage Weil Date: Mon, 23 Oct 2017 22:11:59 +0000 (-0500) Subject: osd/PrimaryLogPG: clear DEGRADED at recovery completion even if more backfill X-Git-Tag: v12.2.2~115^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1751a094d76ac84fbcecfc9816904cbb496bd765;p=ceph.git 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) --- 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(