From c7d01f82688755d66feb78bf5dbc33cc77ba2013 Mon Sep 17 00:00:00 2001 From: Oleksandr Mazur Date: Fri, 27 Sep 2024 12:44:44 +0300 Subject: [PATCH] Remote discovery: fix bug where remote discovery never resyncs remote CGWs Signed-off-by: Oleksandr Mazur --- src/cgw_remote_discovery.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/cgw_remote_discovery.rs b/src/cgw_remote_discovery.rs index 5a911ee..0d2799c 100644 --- a/src/cgw_remote_discovery.rs +++ b/src/cgw_remote_discovery.rs @@ -996,13 +996,13 @@ impl CGWRemoteDiscovery { // try to use internal cache first if let Some(cl) = self.remote_cgws_map.read().await.get(&shard_id) { if let Err(_e) = cl.client.relay_request_stream(stream).await { - error!( - "Failed to relay message. CGW{} seems to be unreachable at [{}:{}]", + warn!( + "Failed to relay message. CGW{} seems to be unreachable at [{}:{}], will try to resync map and try again", shard_id, cl.shard.server_host, cl.shard.server_port ); + } else { + return Ok(()); } - - return Ok(()); } // then try to use redis @@ -1010,11 +1010,12 @@ impl CGWRemoteDiscovery { if let Some(cl) = self.remote_cgws_map.read().await.get(&shard_id) { if let Err(_e) = cl.client.relay_request_stream(stream).await { error!( - "Failed to relay message. CGW{} seems to be unreachable at [{}:{}]", + "Failed to relay message event after resync. CGW{} seems to be unreachable at [{}:{}]", shard_id, cl.shard.server_host, cl.shard.server_port ); + } else { + return Ok(()); } - return Ok(()); } error!("No suitable CGW instance #{shard_id} was discovered, cannot relay msg");