You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Guy Moshkowich (JIRA)" <ji...@apache.org> on 2015/06/25 15:31:04 UTC

[jira] [Commented] (ZOOKEEPER-2184) Zookeeper Client should re-resolve hosts when connection attempts fail

    [ https://issues.apache.org/jira/browse/ZOOKEEPER-2184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14601157#comment-14601157 ] 

Guy Moshkowich commented on ZOOKEEPER-2184:
-------------------------------------------

[~bhavanki]:
Hi Bill,
I want to try and fix this defect and would like to ask you for a review on my proposal.

*What is the issue?*
ZK client resolve the host name to ip's when it starts i.e., not when it tries to reconnect to the ZK cluster.
When restarting ZooKeeper Dockers containers - the ip address of the ZooKeeper server might change (at least this is my understanding), causing the client fail reconnecting to the cluster.

*Proposed fix:*
Have _StaticHostProvider.next(int)_ resolve the host addresses of  serverAddresses at the start of the method.
This method is called from _SendThread.startConnect()_ and _SendThread.pingRwServer()_ which are used for re-connections flow.

Any thoughts?

> Zookeeper Client should re-resolve hosts when connection attempts fail
> ----------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-2184
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2184
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: java client
>    Affects Versions: 3.4.6, 3.5.0
>         Environment: Ubuntu 14.04 host, Docker containers for Zookeeper & Kafka
>            Reporter: Robert P. Thille
>
> Testing in a Docker environment with a single Kafka instance using a single Zookeeper instance. Restarting the Zookeeper container will cause it to receive a new IP address. Kafka will never be able to reconnect to Zookeeper and will hang indefinitely. Updating DNS or /etc/hosts with the new IP address will not help the client to reconnect as the zookeeper/client/StaticHostProvider resolves the connection string hosts at creation time and never re-resolves.
> A solution would be for the client to notice that connection attempts fail and attempt to re-resolve the hostnames in the connectString.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)