From db335e840e920cfc01a82b50dbd2cafc23fdfa8f Mon Sep 17 00:00:00 2001 From: Matan Breizman Date: Wed, 28 May 2025 10:49:13 +0000 Subject: [PATCH] crimson/admin/osd_admin: DumpInFlightOpsHook to await active Signed-off-by: Matan Breizman (cherry picked from commit 2ef46b4c832f152b6fb65d7bcedc21d9d47dbf4d) --- src/crimson/admin/osd_admin.cc | 15 +++++++++------ src/crimson/osd/pg_shard_manager.h | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/crimson/admin/osd_admin.cc b/src/crimson/admin/osd_admin.cc index 870be14b6c7..28a1c5234b9 100644 --- a/src/crimson/admin/osd_admin.cc +++ b/src/crimson/admin/osd_admin.cc @@ -578,12 +578,15 @@ public: auto *f = fref.get(); f->open_object_section("ops_in_flight"); f->open_array_section("ops_in_flight"); - return pg_shard_manager.invoke_on_each_shard_seq([f](const auto &shard_services) { - return shard_services.dump_ops_in_flight(f); - }).then([fref=std::move(fref)]() mutable { - fref->close_section(); - fref->close_section(); - return seastar::make_ready_future(std::move(fref)); + return pg_shard_manager.when_active() + .then([this, f, fref=std::move(fref)]() mutable { + return pg_shard_manager.invoke_on_each_shard_seq([f](const auto &shard_services) { + return shard_services.dump_ops_in_flight(f); + }).then([fref=std::move(fref)]() mutable { + fref->close_section(); + fref->close_section(); + return seastar::make_ready_future(std::move(fref)); + }); }); } private: diff --git a/src/crimson/osd/pg_shard_manager.h b/src/crimson/osd/pg_shard_manager.h index d492b0184af..b9aa7c63181 100644 --- a/src/crimson/osd/pg_shard_manager.h +++ b/src/crimson/osd/pg_shard_manager.h @@ -121,7 +121,7 @@ public: FORWARD(set_booting, set_booting, get_shard_services().local_state.osd_state) FORWARD(set_stopping, set_stopping, get_shard_services().local_state.osd_state) FORWARD(set_active, set_active, get_shard_services().local_state.osd_state) - FORWARD(when_active, when_active, get_shard_services().local_state.osd_state) + FORWARD_CONST(when_active, when_active, get_shard_services().local_state.osd_state) FORWARD_CONST(get_osd_state_string, to_string, get_shard_services().local_state.osd_state) FORWARD(got_map, got_map, get_shard_services().local_state.osdmap_gate) -- 2.39.5