Skip to content

Commit

Permalink
repair: Shutdown repair on nodetool drain too
Browse files Browse the repository at this point in the history
Currently repair shutdown only happens on stop, but it looks like
nodetool drain can call shutdown too to abort no longer relevant repair
tasks if any. This also makes the main()'s deferred shutdown/stop paths
cleaner a little bit

Signed-off-by: Pavel Emelyanov <xemul@scylladb.com>

Closes #15438
  • Loading branch information
xemul authored and denesb committed Sep 21, 2023
1 parent 2392b6a commit 6e972f8
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 4 deletions.
4 changes: 0 additions & 4 deletions main.cc
Expand Up @@ -1879,10 +1879,6 @@ To start the scylla server proper, simply invoke as: scylla server (or just scyl
supervisor::notify("serving");
// Register at_exit last, so that storage_service::drain_on_shutdown will be called first

auto stop_repair = defer_verbose_shutdown("repair", [&repair] {
repair.invoke_on_all(&repair_service::shutdown).get();
});

auto drain_sl_controller = defer_verbose_shutdown("service level controller update loop", [&lifecycle_notifier] {
sl_controller.invoke_on_all([&lifecycle_notifier] (qos::service_level_controller& controller) {
return lifecycle_notifier.local().unregister_subscriber(&controller);
Expand Down
1 change: 1 addition & 0 deletions service/storage_service.cc
Expand Up @@ -5130,6 +5130,7 @@ future<> storage_service::do_drain() {

co_await _db.invoke_on_all(&replica::database::drain);
co_await _sys_ks.invoke_on_all(&db::system_keyspace::shutdown);
co_await _repair.invoke_on_all(&repair_service::shutdown);
}

future<> storage_service::raft_rebuild(sstring source_dc) {
Expand Down

0 comments on commit 6e972f8

Please sign in to comment.