[
https://issues.apache.org/jira/browse/ZOOKEEPER-2184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16349594#comment-16349594
]
ASF GitHub Bot commented on ZOOKEEPER-2184:
-------------------------------------------
Github user afine commented on a diff in the pull request:
https://github.com/apache/zookeeper/pull/451#discussion_r165527366
--- Diff: src/java/main/org/apache/zookeeper/client/StaticHostProvider.java
---
@@ -57,29 +62,12 @@
*/
public StaticHostProvider(Collection<InetSocketAddress>
serverAddresses) {
for (InetSocketAddress address : serverAddresses) {
- try {
- InetAddress ia = address.getAddress();
- InetAddress resolvedAddresses[] =
InetAddress.getAllByName((ia != null) ? ia.getHostAddress() :
- address.getHostName());
- for (InetAddress resolvedAddress : resolvedAddresses) {
- // If hostName is null but the address is not, we can
tell that
- // the hostName is an literal IP address. Then we can
set the host string as the hostname
- // safely to avoid reverse DNS lookup.
- // As far as i know, the only way to check if the
hostName is null is use toString().
- // Both the two implementations of InetAddress are
final class, so we can trust the return value of
- // the toString() method.
- if (resolvedAddress.toString().startsWith("/")
- && resolvedAddress.getAddress() != null) {
- this.serverAddresses.add(
- new
InetSocketAddress(InetAddress.getByAddress(
- address.getHostName(),
- resolvedAddress.getAddress()),
- address.getPort()));
- } else {
- this.serverAddresses.add(new
InetSocketAddress(resolvedAddress.getHostAddress(), address.getPort()));
- }
- }
- } catch (UnknownHostException e) {
+ try {
--- End diff --
something is wrong with the indentation here
> 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.4.7, 3.4.8, 3.4.9, 3.4.10, 3.5.0, 3.5.1, 3.5.2,
> 3.5.3, 3.4.11
> Environment: Ubuntu 14.04 host, Docker containers for Zookeeper &
> Kafka
> Reporter: Robert P. Thille
> Assignee: Flavio Junqueira
> Priority: Blocker
> Labels: easyfix, patch
> Fix For: 3.5.4, 3.4.12
>
> 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
(v7.6.3#76005)