diff --git a/api/storage_service.cc b/api/storage_service.cc index bbbfe61877..d371129877 100644 --- a/api/storage_service.cc +++ b/api/storage_service.cc @@ -325,8 +325,10 @@ void set_storage_service(http_context& ctx, routes& r) { }); }); - ss::is_starting.set(r, [](const_req req) { - return service::get_local_storage_service().is_starting(); + ss::is_starting.set(r, [](std::unique_ptr req) { + return service::get_local_storage_service().is_starting().then([] (auto starting) { + return make_ready_future(starting); + }); }); ss::get_drain_progress.set(r, [](std::unique_ptr req) { diff --git a/service/storage_service.cc b/service/storage_service.cc index 5f190d0713..4d01a4e79f 100644 --- a/service/storage_service.cc +++ b/service/storage_service.cc @@ -1180,8 +1180,11 @@ future storage_service::get_operation_mode() { }); } -bool storage_service::is_starting() { - return _operation_mode == storage_service::mode::STARTING; +future storage_service::is_starting() { + return smp::submit_to(0, [] { + auto mode = get_local_storage_service()._operation_mode; + return mode == storage_service::mode::STARTING; + }); } future storage_service::is_gossip_running() { diff --git a/service/storage_service.hh b/service/storage_service.hh index 530d1b2e16..95c88b22d2 100644 --- a/service/storage_service.hh +++ b/service/storage_service.hh @@ -2448,7 +2448,7 @@ public: #endif future get_operation_mode(); - bool is_starting(); + future is_starting(); #if 0 public String getDrainProgress() {