[
https://issues.apache.org/jira/browse/ZOOKEEPER-2184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15823099#comment-15823099
]
Flavio Junqueira commented on ZOOKEEPER-2184:
---------------------------------------------
I took a stab at a pull request for the 3.4 branch and I'd appreciate some
feedback. It is easy to miss some important detail with this hostname/address
manipulation, so if anyone has a chance to double check what I've done, I'd
appreciate.
For the 3.4 branch, we promise compatibility with Java 6, so the patch does not
immediately apply because it uses {{getHostString}}, which is available only
from Java 7. Consequently, I have added some code to get around that.
For the 3.5 branch, we will need a different patch because of the
reconfiguration changes to {{StaticHostProvider}}. I'll work on it once the 3.4
patch gets a +1.
> 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
> Assignee: Robert P. Thille
> Labels: easyfix, patch
> Fix For: 3.4.10, 3.5.3
>
> Attachments: ZOOKEEPER-2184.patch
>
>
> 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)