From: Mykola Golub Date: Tue, 11 May 2021 06:53:08 +0000 (+0100) Subject: osd: don't assert in-flight backfill is always in recovery list X-Git-Tag: v15.2.13~7^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b309a10d54899103e15059b00916e59f650037ac;p=ceph.git osd: don't assert in-flight backfill is always in recovery list In PrimaryLogPG::on_failed_pull, we unconditionally remove soid from recovering list, but remove it from backfills_in_flight only when the backfill source is the primary osd. Fixes: https://tracker.ceph.com/issues/50351 Signed-off-by: Mykola Golub (cherry picked from commit 9b78e00bdf3dd35478e678661606a59424621c4b) --- diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index f02e12636e4..5dac3a144fd 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -12311,7 +12311,6 @@ void PrimaryLogPG::_clear_recovery_state() last_backfill_started = hobject_t(); set::iterator i = backfills_in_flight.begin(); while (i != backfills_in_flight.end()) { - ceph_assert(recovering.count(*i)); backfills_in_flight.erase(i++); }