You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2015/07/07 03:21:05 UTC

[jira] [Commented] (ZOOKEEPER-1846) Cached InetSocketAddresses prevent proper dynamic DNS resolution

    [ 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 <yo...@users.noreply.github.com>
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)