From 87f65d01b87a12458bbf499bb0965c8d3f8a6fab Mon Sep 17 00:00:00 2001 From: Kamil Braun Date: Tue, 20 Jun 2023 12:06:13 +0200 Subject: [PATCH] messaging_service: store the node's host ID --- main.cc | 1 + message/messaging_service.cc | 5 +++-- message/messaging_service.hh | 4 +++- test/lib/cql_test_env.cc | 2 +- test/manual/gossip.cc | 2 +- test/manual/message.cc | 2 +- 6 files changed, 10 insertions(+), 6 deletions(-) diff --git a/main.cc b/main.cc index be7b0bdc8e..455d9319b3 100644 --- a/main.cc +++ b/main.cc @@ -1099,6 +1099,7 @@ To start the scylla server proper, simply invoke as: scylla server (or just scyl netw::messaging_service::config mscfg; + mscfg.id = cfg->host_id; mscfg.ip = utils::resolve(cfg->listen_address, family).get0(); mscfg.port = cfg->storage_port(); mscfg.ssl_port = cfg->ssl_storage_port(); diff --git a/message/messaging_service.cc b/message/messaging_service.cc index 0f7ad19d23..5319eef86b 100644 --- a/message/messaging_service.cc +++ b/message/messaging_service.cc @@ -226,8 +226,9 @@ future<> messaging_service::unregister_handler(messaging_verb verb) { return _rpc->unregister_handler(verb); } -messaging_service::messaging_service(gms::inet_address ip, uint16_t port) - : messaging_service(config{std::move(ip), port}, scheduling_config{{{{}, "$default"}}, {}, {}}, nullptr) +messaging_service::messaging_service(locator::host_id id, gms::inet_address ip, uint16_t port) + : messaging_service(config{std::move(id), std::move(ip), port}, + scheduling_config{{{{}, "$default"}}, {}, {}}, nullptr) {} static diff --git a/message/messaging_service.hh b/message/messaging_service.hh index aa79f2c525..f323d4c6d9 100644 --- a/message/messaging_service.hh +++ b/message/messaging_service.hh @@ -19,6 +19,7 @@ #include "range.hh" #include "schema/schema_fwd.hh" #include "streaming/stream_fwd.hh" +#include "locator/host_id.hh" #include #include @@ -261,6 +262,7 @@ public: }; struct config { + locator::host_id id; gms::inet_address ip; uint16_t port; uint16_t ssl_port = 0; @@ -322,7 +324,7 @@ private: public: using clock_type = lowres_clock; - messaging_service(gms::inet_address ip, uint16_t port); + messaging_service(locator::host_id id, gms::inet_address ip, uint16_t port); messaging_service(config cfg, scheduling_config scfg, std::shared_ptr); ~messaging_service(); diff --git a/test/lib/cql_test_env.cc b/test/lib/cql_test_env.cc index fc4b5874b2..4a68648bb3 100644 --- a/test/lib/cql_test_env.cc +++ b/test/lib/cql_test_env.cc @@ -716,7 +716,7 @@ public: } // don't start listening so tests can be run in parallel - ms.start(listen, std::move(7000)).get(); + ms.start(cfg->host_id, listen, std::move(7000)).get(); auto stop_ms = defer([&ms] { ms.stop().get(); }); // Normally the auth server is already stopped in here, diff --git a/test/manual/gossip.cc b/test/manual/gossip.cc index c3ebe80b7d..1fcd8a04e5 100644 --- a/test/manual/gossip.cc +++ b/test/manual/gossip.cc @@ -68,7 +68,7 @@ int main(int ac, char ** av) { token_metadata.start([] () noexcept { return db::schema_tables::hold_merge_lock(); }, locator::token_metadata::config{}).get(); auto stop_token_mgr = defer([&] { token_metadata.stop().get(); }); - messaging.start(listen, 7000).get(); + messaging.start(locator::host_id{}, listen, 7000).get(); auto stop_messaging = deferred_stop(messaging); gms::gossip_config gcfg; diff --git a/test/manual/message.cc b/test/manual/message.cc index 1f0c3e18af..401a85f854 100644 --- a/test/manual/message.cc +++ b/test/manual/message.cc @@ -171,7 +171,7 @@ int main(int ac, char ** av) { const gms::inet_address listen = gms::inet_address(config["listen-address"].as()); utils::fb_utilities::set_broadcast_address(listen); seastar::sharded messaging; - return messaging.start(listen, 7000).then([config, stay_alive, &messaging] () { + return messaging.start(locator::host_id{}, listen, 7000).then([config, stay_alive, &messaging] () { auto testers = new distributed; return testers->start(std::ref(messaging)).then([testers]{ auto port = testers->local().port();