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:
24
main.cc
24
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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user