Github user anmolnar commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/451#discussion_r186591847 --- Diff: src/java/main/org/apache/zookeeper/client/StaticHostProvider.java --- @@ -111,9 +154,18 @@ public InetSocketAddress next(long spinDelay) { lastIndex = 0; } - return serverAddresses.get(currentIndex); + InetSocketAddress curAddr = serverAddresses.get(currentIndex); + + String curHostString = getHostString(curAddr); + List<InetAddress> resolvedAddresses = new ArrayList<InetAddress>(Arrays.asList(this.resolver.getAllByName(curHostString))); + if (resolvedAddresses.isEmpty()) { + throw new UnknownHostException("No IP address returned for address: " + curHostString); + } + Collections.shuffle(resolvedAddresses); --- End diff -- Correctly configured DNS servers return multiple IP addresses in round robin fashion for a single hostname, so shuffle is not needed. However there was a concern of badly configured DNS servers might not do this properly and we want to workaround it here.
---