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 {