From 542e0f419e42350a1678d9bb1b9aecaac923077b Mon Sep 17 00:00:00 2001 From: Xuehan Xu Date: Sun, 20 Aug 2023 14:50:48 +0800 Subject: [PATCH] crimson/osd/object_context: assert that all in-cache obcs are fully loaded Signed-off-by: Xuehan Xu --- src/crimson/osd/object_context.h | 7 +++++++ src/crimson/osd/object_context_loader.cc | 1 + 2 files changed, 8 insertions(+) diff --git a/src/crimson/osd/object_context.h b/src/crimson/osd/object_context.h index 8abf6d3f71e..106968e60c3 100644 --- a/src/crimson/osd/object_context.h +++ b/src/crimson/osd/object_context.h @@ -94,11 +94,13 @@ public: ceph_assert(is_head()); obs = std::move(_obs); ssc = std::move(_ssc); + fully_loaded = true; } void set_clone_state(ObjectState &&_obs) { ceph_assert(!is_head()); obs = std::move(_obs); + fully_loaded = true; } /// pass the provided exception to any waiting consumers of this ObjectContext @@ -110,6 +112,10 @@ public: } } + bool is_fully_loaded() const { + return fully_loaded; + } + private: tri_mutex lock; bool recovery_read_marker = false; @@ -126,6 +132,7 @@ private: boost::intrusive::list_member_hook<> list_hook; uint64_t list_link_cnt = 0; + bool fully_loaded = false; public: diff --git a/src/crimson/osd/object_context_loader.cc b/src/crimson/osd/object_context_loader.cc index d7d2b6d98c6..f49de73f5d4 100644 --- a/src/crimson/osd/object_context_loader.cc +++ b/src/crimson/osd/object_context_loader.cc @@ -168,6 +168,7 @@ using crimson::common::local_conf; auto loaded = load_obc_iertr::make_ready_future(obc); if (existed) { + ceph_assert(obc->is_fully_loaded()); DEBUGDPP("cache hit on {}", dpp, obc->get_oid()); } else { DEBUGDPP("cache miss on {}", dpp, obc->get_oid()); -- 2.39.5