This is an automated email from the ASF dual-hosted git repository. zhouxj pushed a commit to branch feature/GEODE-10349 in repository https://gitbox.apache.org/repos/asf/geode.git
commit 8c3329f9e5f19abdac04d1afb592c027f852b3fa Author: zhouxh <[email protected]> AuthorDate: Wed Jun 1 16:53:23 2022 -0700 GEODE-10349: Client connects to a new server socket should check its availability --- .../distributed/internal/tcpserver/AdvancedSocketCreatorImpl.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/AdvancedSocketCreatorImpl.java b/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/AdvancedSocketCreatorImpl.java index 9d85ad3747..e0d82a28db 100644 --- a/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/AdvancedSocketCreatorImpl.java +++ b/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/AdvancedSocketCreatorImpl.java @@ -20,6 +20,7 @@ import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket; +import java.net.UnknownHostException; import java.nio.channels.ServerSocketChannel; import java.util.concurrent.ThreadLocalRandom; @@ -99,6 +100,11 @@ public class AdvancedSocketCreatorImpl implements AdvancedSocketCreator { } InetSocketAddress inetSocketAddress = addr.getSocketInetAddress(); try { + if (inetSocketAddress.getAddress() == null + || !inetSocketAddress.getAddress().isReachable(5000)) { + throw new UnknownHostException( + inetSocketAddress.getHostName() + ":" + inetSocketAddress.getPort()); + } socket.connect(inetSocketAddress, Math.max(timeout, 0)); } catch (ConnectException connectException) { logger.info("Failed to connect to " + inetSocketAddress);
