Skip to content

Commit 749007f

Browse files
committed
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 <[email protected]>
1 parent ad7c409 commit 749007f

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/crimson/osd/backfill_state.cc

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -378,16 +378,17 @@ BackfillState::Enqueuing::Enqueuing(my_context ctx)
378378
trim_backfilled_object_from_intervals(std::move(result),
379379
backfill_state().last_backfill_started,
380380
backfill_state().peer_backfill_info);
381-
} else {
381+
backfill_listener().maybe_flush();
382+
} else if (!primary_bi.empty()) {
382383
auto result = update_on_peers(check);
383384
trim_backfilled_object_from_intervals(std::move(result),
384385
backfill_state().last_backfill_started,
385386
backfill_state().peer_backfill_info);
386-
if (!primary_bi.empty()) {
387-
primary_bi.pop_front();
388-
}
387+
primary_bi.pop_front();
388+
backfill_listener().maybe_flush();
389+
} else {
390+
break;
389391
}
390-
backfill_listener().maybe_flush();
391392
} while (!all_emptied(primary_bi, backfill_state().peer_backfill_info));
392393

393394
if (backfill_state().progress_tracker->tracked_objects_completed()

0 commit comments

Comments
 (0)