From: Xuehan Xu Date: Thu, 31 Oct 2024 07:39:21 +0000 (+0800) Subject: crimson/osd/backfill_state: don't try to do object backfills when primary_bi is empty X-Git-Tag: v20.0.0~653^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=749007f7cf9197dc409f6511d80704933c1be8a5;p=ceph.git crimson/osd/backfill_state: don't try to do object backfills when primary_bi is empty Fixes: https://tracker.ceph.com/issues/68787 Signed-off-by: Xuehan Xu --- diff --git a/src/crimson/osd/backfill_state.cc b/src/crimson/osd/backfill_state.cc index 018e58b68f85..2922bf71039e 100644 --- a/src/crimson/osd/backfill_state.cc +++ b/src/crimson/osd/backfill_state.cc @@ -378,16 +378,17 @@ BackfillState::Enqueuing::Enqueuing(my_context ctx) trim_backfilled_object_from_intervals(std::move(result), backfill_state().last_backfill_started, backfill_state().peer_backfill_info); - } else { + backfill_listener().maybe_flush(); + } else if (!primary_bi.empty()) { auto result = update_on_peers(check); trim_backfilled_object_from_intervals(std::move(result), backfill_state().last_backfill_started, backfill_state().peer_backfill_info); - if (!primary_bi.empty()) { - primary_bi.pop_front(); - } + primary_bi.pop_front(); + backfill_listener().maybe_flush(); + } else { + break; } - backfill_listener().maybe_flush(); } while (!all_emptied(primary_bi, backfill_state().peer_backfill_info)); if (backfill_state().progress_tracker->tracked_objects_completed()