Github user asdf2014 commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/303#discussion_r181613274 --- Diff: src/java/main/org/apache/zookeeper/client/StaticHostProvider.java --- @@ -71,7 +71,7 @@ * if serverAddresses is empty or resolves to an empty list */ public StaticHostProvider(Collection<InetSocketAddress> serverAddresses) { - sourceOfRandomness = new Random(System.currentTimeMillis() ^ this.hashCode()); + sourceOfRandomness = new Random(System.nanoTime() ^ this.hashCode()); --- End diff -- Hi, @maoling. Sorry for my belated comment. Indeed, i hadn't been considered this case that different clients will own different `hashcode`s. Because, in my sistuation, our Zookeeper clusters only give service to some apointed BigData components, e.g., [HBase](https://yuzhouwan.com/posts/45888/), [Druid.io](https://yuzhouwan.com/posts/5845/), [Hadoop](https://yuzhouwan.com/posts/60504/), [Kafka](https://yuzhouwan.com/posts/26002/) etc. Inside these components will have settled clients, so them can not offer too many different `hashcode`s.
---