You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by sy...@apache.org on 2020/11/16 07:42:45 UTC
[zookeeper] branch master updated: ZOOKEEPER-3991: Refresh
InetSocketAddress before binding quorum server socket
This is an automated email from the ASF dual-hosted git repository.
symat pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zookeeper.git
The following commit(s) were added to refs/heads/master by this push:
new 58e0a77 ZOOKEEPER-3991: Refresh InetSocketAddress before binding quorum server socket
58e0a77 is described below
commit 58e0a7741533ec3598c619c526208f8a90f5756c
Author: Lander Visterin <la...@klarrio.com>
AuthorDate: Mon Nov 16 07:41:58 2020 +0000
ZOOKEEPER-3991: Refresh InetSocketAddress before binding quorum server socket
Setting `electionPortBindRetry` to 0 (as recommended by the documentation for the setup we are using) results in this code being called in a loop.
The desired behaviour is that in case of a bad DNS reply the server socket creation will fail and keep retrying until the hostname resolves. The current behaviour is that it keeps throwing unresolved address errors even though the DNS entry became correct.
For more details and reproduction steps see the Jira issue at https://issues.apache.org/jira/browse/ZOOKEEPER-3991
Please note that the contents of this PR are different from the patch I initially attached to the issue.
Author: Lander Visterin <la...@klarrio.com>
Reviewers: Enrico Olivelli <eo...@apache.org>, Mate Szalay-Beko <sy...@apache.org>
Closes #1524 from lvisterin/ZOOKEEPER-3991
---
.../main/java/org/apache/zookeeper/server/quorum/QuorumCnxManager.java | 1 +
1 file changed, 1 insertion(+)
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumCnxManager.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumCnxManager.java
index 98283fb..0987ad3 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumCnxManager.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumCnxManager.java
@@ -1132,6 +1132,7 @@ public class QuorumCnxManager {
}
socket.setReuseAddress(true);
+ address = new InetSocketAddress(address.getHostString(), address.getPort());
socket.bind(address);
return socket;