diff --git a/main.cc b/main.cc index 0b9fe46020..8e9c6efb19 100644 --- a/main.cc +++ b/main.cc @@ -1672,6 +1672,18 @@ To start the scylla server proper, simply invoke as: scylla server (or just scyl sys_dist_ks.invoke_on_all(&db::system_distributed_keyspace::stop).get(); }); + group0_service.start().get(); + auto stop_group0_service = defer_verbose_shutdown("group 0 service", [&group0_service] { + sl_controller.local().abort_group0_operations(); + group0_service.abort().get(); + }); + + utils::get_local_injector().inject("stop_after_starting_group0_service", + [] { std::raise(SIGSTOP); }); + + // Set up group0 service earlier since it is needed by group0 setup just below + ss.local().set_group0(group0_service); + supervisor::notify("starting view update generator"); view_update_generator.start(std::ref(db), std::ref(proxy), std::ref(stop_signal.as_sharded_abort_source())).get(); auto stop_view_update_generator = defer_verbose_shutdown("view update generator", [] { @@ -1943,18 +1955,6 @@ To start the scylla server proper, simply invoke as: scylla server (or just scyl */ db.local().enable_autocompaction_toggle(); - group0_service.start().get(); - auto stop_group0_service = defer_verbose_shutdown("group 0 service", [&group0_service] { - sl_controller.local().abort_group0_operations(); - group0_service.abort().get(); - }); - - utils::get_local_injector().inject("stop_after_starting_group0_service", - [] { std::raise(SIGSTOP); }); - - // Set up group0 service earlier since it is needed by group0 setup just below - ss.local().set_group0(group0_service); - const auto generation_number = gms::generation_type(sys_ks.local().increment_and_get_generation().get()); // Load address_map from system.peers and subscribe to gossiper events to keep it updated. diff --git a/test/lib/cql_test_env.cc b/test/lib/cql_test_env.cc index 8b00eb57f0..fb06002f29 100644 --- a/test/lib/cql_test_env.cc +++ b/test/lib/cql_test_env.cc @@ -909,6 +909,13 @@ private: _group0_registry.invoke_on_all(&service::raft_group_registry::drain_on_shutdown).get(); }); + group0_service.start().get(); + auto stop_group0_service = defer([&group0_service] { + group0_service.abort().get(); + }); + + _ss.local().set_group0(group0_service); + _view_update_generator.start(std::ref(_db), std::ref(_proxy), std::ref(abort_sources)).get(); _view_update_generator.invoke_on_all(&db::view::view_update_generator::start).get(); auto stop_view_update_generator = defer([this] { @@ -958,13 +965,6 @@ private: _cdc.stop().get(); }); - group0_service.start().get(); - auto stop_group0_service = defer([&group0_service] { - group0_service.abort().get(); - }); - - _ss.local().set_group0(group0_service); - const auto generation_number = gms::generation_type(_sys_ks.local().increment_and_get_generation().get()); // Load address_map from system.peers and subscribe to gossiper events to keep it updated.