snitch, storage_service: Move reconnect to internal_ip kick
The same thing as in previous patch -- when gossiper issues on_join/_change notification, storage service can kick messaging service to update its internal_ip cache and reconnect to the peer. Signed-off-by: Pavel Emelyanov <xemul@scylladb.com>
This commit is contained in:
@@ -201,22 +201,7 @@ future<> reconnectable_snitch_helper::reconnect(gms::inet_address public_address
|
||||
}
|
||||
|
||||
future<> reconnectable_snitch_helper::reconnect(gms::inet_address public_address, gms::inet_address local_address) {
|
||||
auto& sn_ptr = locator::i_endpoint_snitch::get_local_snitch_ptr();
|
||||
netw::messaging_service& ms = sn_ptr.get_local_gossiper().get_local_messaging();
|
||||
|
||||
if (sn_ptr->get_datacenter(public_address) == _local_dc &&
|
||||
ms.get_preferred_ip(public_address) != local_address) {
|
||||
//
|
||||
// ...then update messaging_service cache and reset the currently
|
||||
// open connections to this endpoint on all shards...
|
||||
//
|
||||
co_await ms.container().invoke_on_all([public_address, local_address] (auto& local_ms) {
|
||||
local_ms.cache_preferred_ip(public_address, local_address);
|
||||
local_ms.remove_rpc_client(netw::msg_addr(public_address));
|
||||
});
|
||||
|
||||
logger().debug("Initiated reconnect to an Internal IP {} for the {}", local_address, public_address);
|
||||
}
|
||||
return make_ready_future<>();
|
||||
}
|
||||
|
||||
reconnectable_snitch_helper::reconnectable_snitch_helper(sstring local_dc)
|
||||
|
||||
Reference in New Issue
Block a user