diff --git a/repair/row_level.cc b/repair/row_level.cc index e77094e807e4..757a001b5d08 100644 --- a/repair/row_level.cc +++ b/repair/row_level.cc @@ -3218,13 +3218,22 @@ future<> repair_service::start() { } future<> repair_service::stop() { + try { + rlogger.debug("Stopping repair task module"); co_await _repair_module->stop(); + rlogger.debug("Waiting on load_history_done"); co_await std::move(_load_history_done); + rlogger.debug("Uninitializing messaging service handlers"); co_await uninit_ms_handlers(); if (this_shard_id() == 0) { + rlogger.debug("Unregistering gossiper helper"); co_await _gossiper.local().unregister_(_gossip_helper); } _stopped = true; + rlogger.info("Stopped repair_service"); + } catch (...) { + on_fatal_internal_error(rlogger, format("Failed stopping repair_service: {}", std::current_exception())); + } } repair_service::~repair_service() {