From ca38f8ce90dc8efa832f6b652be03748dff170a9 Mon Sep 17 00:00:00 2001 From: Zhang Song Date: Tue, 6 Dec 2022 15:38:36 +0800 Subject: [PATCH] crimson/os/seastore: update assertion about reservation Signed-off-by: Zhang Song --- src/crimson/os/seastore/extent_placement_manager.cc | 6 ++++-- src/crimson/os/seastore/extent_placement_manager.h | 7 ++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/crimson/os/seastore/extent_placement_manager.cc b/src/crimson/os/seastore/extent_placement_manager.cc index 535d52e2c07..512c40c7d80 100644 --- a/src/crimson/os/seastore/extent_placement_manager.cc +++ b/src/crimson/os/seastore/extent_placement_manager.cc @@ -443,7 +443,9 @@ seastar::future<> ExtentPlacementManager::BackgroundProcess::reserve_projected_usage( projected_usage_t usage) { - ceph_assert(is_ready()); + if (!is_ready()) { + return seastar::now(); + } ceph_assert(!blocking_io); // The pipeline configuration prevents another IO from entering // prepare until the prior one exits and clears this. @@ -470,7 +472,7 @@ ExtentPlacementManager::BackgroundProcess::reserve_projected_usage( ceph_assert(!blocking_io); auto res = try_reserve(usage); if (res.is_successful()) { - assert(stats.io_blocking_num > 0); + assert(stats.io_blocking_num == 1); --stats.io_blocking_num; return seastar::make_ready_future( seastar::stop_iteration::yes); diff --git a/src/crimson/os/seastore/extent_placement_manager.h b/src/crimson/os/seastore/extent_placement_manager.h index 3297af0394f..45e1f9b1e19 100644 --- a/src/crimson/os/seastore/extent_placement_manager.h +++ b/src/crimson/os/seastore/extent_placement_manager.h @@ -463,9 +463,10 @@ private: seastar::future<> reserve_projected_usage(projected_usage_t usage); void release_projected_usage(projected_usage_t usage) { - ceph_assert(is_ready()); - trimmer->release_inline_usage(usage.inline_usage); - cleaner->release_projected_usage(usage.inline_usage + usage.ool_usage); + if (is_ready()) { + trimmer->release_inline_usage(usage.inline_usage); + cleaner->release_projected_usage(usage.inline_usage + usage.ool_usage); + } } seastar::future<> stop_background(); -- 2.39.5