[ https://issues.apache.org/jira/browse/ZOOKEEPER-2184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15828504#comment-15828504 ]
ASF GitHub Bot commented on ZOOKEEPER-2184: ------------------------------------------- Github user hanm commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/150#discussion_r96699622 --- Diff: src/java/main/org/apache/zookeeper/client/StaticHostProvider.java --- @@ -57,26 +62,20 @@ public StaticHostProvider(Collection<InetSocketAddress> serverAddresses) throws UnknownHostException { for (InetSocketAddress address : serverAddresses) { - InetAddress ia = address.getAddress(); - InetAddress resolvedAddresses[] = InetAddress.getAllByName((ia!=null) ? ia.getHostAddress(): - address.getHostName()); + InetAddress resolvedAddresses[]; + try { + Method m = InetSocketAddress.class.getDeclaredMethod("getHostString"); + m.setAccessible(true); + resolvedAddresses = InetAddress.getAllByName((String) m.invoke(address)); + } catch (IllegalAccessException e) { + resolvedAddresses = InetAddress.getAllByName(getHostString(address)); + } catch (NoSuchMethodException e) { + resolvedAddresses = InetAddress.getAllByName(getHostString(address)); + } catch (InvocationTargetException e) { + resolvedAddresses = InetAddress.getAllByName(getHostString(address)); + } --- End diff -- The signature of getDeclaredMethod said it also could throw SecurityException, not sure if we should catch it or not 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.5.0 > Environment: Ubuntu 14.04 host, Docker containers for Zookeeper & > Kafka > Reporter: Robert P. Thille > Assignee: Flavio Junqueira > 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)