]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: don't assert in-flight backfill is always in recovery list 41321/head
authorMykola Golub <mgolub@suse.com>
Tue, 11 May 2021 06:53:08 +0000 (07:53 +0100)
committerMykola Golub <mgolub@suse.com>
Thu, 13 May 2021 08:08:35 +0000 (11:08 +0300)
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 <mgolub@suse.com>
(cherry picked from commit 9b78e00bdf3dd35478e678661606a59424621c4b)

src/osd/PrimaryLogPG.cc

index f02e12636e4088f2af64dc2df18367bf320630a2..5dac3a144fd093cb23cc8486de58897ae50e9fb9 100644 (file)
@@ -12311,7 +12311,6 @@ void PrimaryLogPG::_clear_recovery_state()
   last_backfill_started = hobject_t();
   set<hobject_t>::iterator i = backfills_in_flight.begin();
   while (i != backfills_in_flight.end()) {
-    ceph_assert(recovering.count(*i));
     backfills_in_flight.erase(i++);
   }