From 91c2854edc4ce38119b183cf79ffbafa0395da72 Mon Sep 17 00:00:00 2001 From: David Zafman Date: Fri, 23 Aug 2019 08:52:39 -0700 Subject: [PATCH] osd: Don't set backfill_toofull in RemoteReservationRevoked path We shouldn't set backfill_toofull when a revoke occurs in the non-toofull case. Fixes: https://tracker.ceph.com/issues/41255 Signed-off-by: David Zafman (cherry picked from commit fa569ecfecc43ce685b29e0456f62cb085788f25) Conflicts: src/osd/PeeringState.cc - file does not exist in nautilus due to refactoring: made the changes manually to src/osd/PG.cc - no "DECLARE_LOCALS" in nautilus --- src/osd/PG.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 8161087bfb470..2dceb067e6b65 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -7762,7 +7762,6 @@ void PG::RecoveryState::WaitRemoteBackfillReserved::retry() } pg->state_clear(PG_STATE_BACKFILL_WAIT); - pg->state_set(PG_STATE_BACKFILL_TOOFULL); pg->publish_stats_to_osd(); pg->schedule_backfill_retry(pg->cct->_conf->osd_backfill_retry_interval); @@ -7771,6 +7770,8 @@ void PG::RecoveryState::WaitRemoteBackfillReserved::retry() boost::statechart::result PG::RecoveryState::WaitRemoteBackfillReserved::react(const RemoteReservationRejected &evt) { + PG *pg = context< RecoveryMachine >().pg; + pg->state_set(PG_STATE_BACKFILL_TOOFULL); retry(); return transit(); } -- 2.39.5