diff --git a/main.cc b/main.cc index 7274a22103..b78a8ba228 100644 --- a/main.cc +++ b/main.cc @@ -2180,7 +2180,7 @@ To start the scylla server proper, simply invoke as: scylla server (or just scyl auth::make_maintenance_socket_role_manager_factory(qp, group0_client, mm, auth_cache), maintenance_socket_enabled::yes, std::ref(auth_cache)).get(); - cql_maintenance_server_ctl.emplace(maintenance_auth_service, mm_notifier, gossiper, qp, service_memory_limiter, sl_controller, lifecycle_notifier, messaging, *cfg, maintenance_cql_sg_stats_key, maintenance_socket_enabled::yes, dbcfg.statement_scheduling_group); + cql_maintenance_server_ctl.emplace(maintenance_auth_service, mm_notifier, gossiper, qp, service_memory_limiter, sl_controller, lifecycle_notifier, messaging, timeout_cfg, *cfg, maintenance_cql_sg_stats_key, maintenance_socket_enabled::yes, dbcfg.statement_scheduling_group); start_auth_service(maintenance_auth_service, stop_maintenance_auth_service, "maintenance auth service"); } @@ -2612,7 +2612,7 @@ To start the scylla server proper, simply invoke as: scylla server (or just scyl // after drain stops them in stop_transport() // Register controllers after drain_on_shutdown() below, so that even on start // failure drain is called and stops controllers - cql_transport::controller cql_server_ctl(auth_service, mm_notifier, gossiper, qp, service_memory_limiter, sl_controller, lifecycle_notifier, messaging, *cfg, cql_sg_stats_key, maintenance_socket_enabled::no, dbcfg.statement_scheduling_group); + cql_transport::controller cql_server_ctl(auth_service, mm_notifier, gossiper, qp, service_memory_limiter, sl_controller, lifecycle_notifier, messaging, timeout_cfg, *cfg, cql_sg_stats_key, maintenance_socket_enabled::no, dbcfg.statement_scheduling_group); api::set_server_service_levels(ctx, cql_server_ctl, qp).get(); diff --git a/transport/controller.cc b/transport/controller.cc index 077e8972b0..2993cfec59 100644 --- a/transport/controller.cc +++ b/transport/controller.cc @@ -31,7 +31,7 @@ static logging::logger logger("cql_server_controller"); controller::controller(sharded& auth, sharded& mn, sharded& gossiper, sharded& qp, sharded& ml, sharded& sl_controller, sharded& elc_notif, - sharded& ms, + sharded& ms, sharded& timeout_config, const db::config& cfg, scheduling_group_key cql_opcode_stats_key, maintenance_socket_enabled used_by_maintenance_socket, seastar::scheduling_group sg) : protocol_server(sg) @@ -45,6 +45,7 @@ controller::controller(sharded& auth, sharded controller::do_start_server() { shard_aware_transport_port_ssl = cfg.native_shard_aware_transport_port_ssl(); } return cql_server_config { - .timeout_config = updateable_timeout_config(cfg), + .timeout_config = _timeout_config.local(), .max_request_size = _mem_limiter.local().total_memory(), .partitioner_name = cfg.partitioner(), .sharding_ignore_msb = cfg.murmur3_partitioner_ignore_msb_bits(), diff --git a/transport/controller.hh b/transport/controller.hh index de13e773ec..cd0e822ae3 100644 --- a/transport/controller.hh +++ b/transport/controller.hh @@ -30,6 +30,7 @@ namespace qos { class service_level_controller; } namespace netw { class messaging_service; } namespace db { class config; } struct client_data; +class updateable_timeout_config; namespace cql_transport { @@ -50,6 +51,7 @@ class controller : public protocol_server { sharded& _mem_limiter; sharded& _sl_controller; sharded& _messaging; + sharded& _timeout_config; const db::config& _config; scheduling_group_key _cql_opcode_stats_key; @@ -70,7 +72,7 @@ public: controller(sharded&, sharded&, sharded&, sharded&, sharded&, sharded&, sharded&, - sharded&, + sharded&, sharded& timeout_config, const db::config& cfg, scheduling_group_key cql_opcode_stats_key, maintenance_socket_enabled used_by_maintenance_socket, seastar::scheduling_group sg); virtual sstring name() const override; diff --git a/transport/server.hh b/transport/server.hh index 64342ca04d..f522909e3e 100644 --- a/transport/server.hh +++ b/transport/server.hh @@ -117,7 +117,7 @@ struct cql_query_state { }; struct cql_server_config { - updateable_timeout_config timeout_config; + updateable_timeout_config& timeout_config; size_t max_request_size; sstring partitioner_name; unsigned sharding_ignore_msb;