From cd2e786d72c3f36154a387f402662bdd91cdf7de Mon Sep 17 00:00:00 2001 From: Andrii Patsula Date: Mon, 12 Dec 2022 19:44:05 +0100 Subject: [PATCH] Report a warning when a server's IP cannot be found in ping. Fixes #12156 Closes #12206 --- service/raft/raft_group_registry.cc | 4 ++++ service/raft/raft_group_registry.hh | 3 +++ 2 files changed, 7 insertions(+) diff --git a/service/raft/raft_group_registry.cc b/service/raft/raft_group_registry.cc index 0f351e01e0..7b4f80dd4b 100644 --- a/service/raft/raft_group_registry.cc +++ b/service/raft/raft_group_registry.cc @@ -445,6 +445,10 @@ future direct_fd_pinger::ping(direct_failure_detector::pinger::endpoint_id auto dst_id = raft::server_id{std::move(id)}; auto addr = _address_map.find(dst_id); if (!addr) { + auto [it, _] = _rate_limits.try_emplace(id, std::chrono::minutes(5)); + auto& rate_limit = it->second; + + rslog.log(log_level::warn, rate_limit, "Raft server id {} cannot be translated to an IP address.", id); co_return false; } diff --git a/service/raft/raft_group_registry.hh b/service/raft/raft_group_registry.hh index e5fa06b8f8..ad0af8643c 100644 --- a/service/raft/raft_group_registry.hh +++ b/service/raft/raft_group_registry.hh @@ -149,6 +149,9 @@ class direct_fd_pinger : public seastar::peering_sharded_service; + rate_limits _rate_limits; + public: direct_fd_pinger(netw::messaging_service& ms, raft_address_map& address_map) : _ms(ms), _address_map(address_map) {}