You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by pe...@apache.org on 2022/08/08 09:04:14 UTC

[pulsar] 10/33: [fix][client]Fix auto cluster failover can't resolve host bug (#16152)

This is an automated email from the ASF dual-hosted git repository.

penghui pushed a commit to branch branch-2.10
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit 73cfe5e81e0f9162394ce9be7eb5250041d3ea8a
Author: Hang Chen <ch...@apache.org>
AuthorDate: Wed Jul 27 10:28:37 2022 +0800

    [fix][client]Fix auto cluster failover can't resolve host bug (#16152)
    
    (cherry picked from commit dda81afe45fea2d8dd16eaaa5d1f729e50ac79a4)
---
 .../main/java/org/apache/pulsar/client/impl/AutoClusterFailover.java  | 4 +++-
 .../java/org/apache/pulsar/client/impl/AutoClusterFailoverTest.java   | 2 ++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/AutoClusterFailover.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/AutoClusterFailover.java
index baccc29e7da..1f34de71979 100644
--- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/AutoClusterFailover.java
+++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/AutoClusterFailover.java
@@ -22,6 +22,7 @@ import static org.apache.pulsar.common.util.Runnables.catchingAndLoggingThrowabl
 import com.google.common.base.Strings;
 import io.netty.util.concurrent.DefaultThreadFactory;
 import java.io.IOException;
+import java.net.InetSocketAddress;
 import java.net.Socket;
 import java.util.List;
 import java.util.Map;
@@ -126,8 +127,9 @@ public class AutoClusterFailover implements ServiceUrlProvider {
     boolean probeAvailable(String url) {
         try {
             resolver.updateServiceUrl(url);
+            InetSocketAddress endpoint = resolver.resolveHost();
             Socket socket = new Socket();
-            socket.connect(resolver.resolveHost(), TIMEOUT);
+            socket.connect(new InetSocketAddress(endpoint.getHostName(), endpoint.getPort()), TIMEOUT);
             socket.close();
             return true;
         } catch (Exception e) {
diff --git a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/AutoClusterFailoverTest.java b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/AutoClusterFailoverTest.java
index 0469bd4fe15..6f8acf5df80 100644
--- a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/AutoClusterFailoverTest.java
+++ b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/AutoClusterFailoverTest.java
@@ -23,6 +23,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.pulsar.client.api.Authentication;
 import org.apache.pulsar.client.api.AuthenticationFactory;
 import org.apache.pulsar.client.api.PulsarClientException;
@@ -37,6 +38,7 @@ import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.mock;
 
 @Test(groups = "broker-impl")
+@Slf4j
 public class AutoClusterFailoverTest {
     @Test
     public void testBuildAutoClusterFailoverInstance() throws PulsarClientException {