[
https://issues.apache.org/jira/browse/ZOOKEEPER-1846?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14616025#comment-14616025
]
ASF GitHub Bot commented on ZOOKEEPER-1846:
-------------------------------------------
GitHub user yongtang opened a pull request:
https://github.com/apache/zookeeper/pull/37
ZOOKEEPER-1846: Always recreate socket addresses for any DNS change.
This pull is also related to ZOOKEEPER-1506. The fix allows DNS changes to
be applied when ZooKeeper is running. ZOOKEEPER-1506 partially solves this
issue, which has already been
applied to ZooKeeper 3.5.1 (RC3). This pull request allows ZOOKEEPER-1846
to be fixed as well.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/yongtang/zookeeper branch-3.5
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/zookeeper/pull/37.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #37
----
commit 92a55a764f54521d3cd745a26f2fedfa7b5804ac
Author: yongtang <[email protected]>
Date: 2015-07-07T01:15:50Z
ZOOKEEPER-1846: Always recreate socket addresses for any DNS change. This
fix is also related to ZOOKEEPER-1506.
----
> Cached InetSocketAddresses prevent proper dynamic DNS resolution
> ----------------------------------------------------------------
>
> Key: ZOOKEEPER-1846
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1846
> Project: ZooKeeper
> Issue Type: Bug
> Components: quorum
> Affects Versions: 3.4.6
> Reporter: Benjamin Jaton
> Priority: Minor
> Labels: patch
> Attachments: DynamicIP.java.patch, Learner.java,
> QuorumCnxManager.java, QuorumPeer.java
>
>
> The class QuorumPeer maintains a Map<Long, QuorumServer> quorumPeers.
> Each QuorumServer is created with an instance of InetSocketAddress
> electionAddr, and holds it forever.
> I believe this is why the ZooKeeper servers can't resolve each other
> dynamically: If a ZooKeeper in the ensemble cannot be resolved at startup, it
> will never be resolved (until restart of the JVM), constantly failing with an
> UnknownHostException, even when the node is back up and reachable.
> I would suggest to recreate an InetSocketAddress every time we retry the
> connection.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)