diff --git a/service/storage_service.cc b/service/storage_service.cc index b6af96bb4c..ebe34ffe90 100644 --- a/service/storage_service.cc +++ b/service/storage_service.cc @@ -621,7 +621,9 @@ future storage_service::sync_raft_t auto ip = _address_map.find(host_id); co_await process_normal_node(id, host_id, ip, rs); if (ip) { - sys_ks_futures.push_back(raft_topology_update_ip(host_id, *ip, id_to_ip_map, prev_normal.contains(id) ? nullptr : &nodes_to_notify)); + auto it = id_to_ip_map.find(host_id); + bool notify = it == id_to_ip_map.end() || it->second != ip || !prev_normal.contains(id); + sys_ks_futures.push_back(raft_topology_update_ip(host_id, *ip, id_to_ip_map, notify ? &nodes_to_notify : nullptr)); } } for (const auto& [id, rs]: t.transition_nodes) {