main,cql_test_env: start group0_service before view_builder

In scylladb/scylladb#19745, view_builder was migrated to group0
and since then it is dependent on group0_service.
Because of this, group0_service should be initialized/destroyed
before/after view_builder.

Fixes scylladb/scylladb#20772

Co-authored-by: Dawid Mędrek <dawid.medrek@scylladb.com>
This commit is contained in:
Michał Jadwiszczak
2024-11-06 23:42:48 +01:00
parent 8fb6d98ba3
commit 7bad8378c7
2 changed files with 19 additions and 19 deletions

24
main.cc
View File

@@ -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.

View File

@@ -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.