zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexander Shraer (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ZOOKEEPER-1990) suspicious instantiation of java Random instances
Date Thu, 15 Feb 2018 17:35:00 GMT

    [ https://issues.apache.org/jira/browse/ZOOKEEPER-1990?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16365987#comment-16365987
] 

Alexander Shraer commented on ZOOKEEPER-1990:
---------------------------------------------

Please don't change the StaticHostProvider and StaticHostProviderTest instantiations of random.

This is done to test the client rebalancing algorithm. The test creates thousands of clients
roughly at the same time, but each client has to have a different random number for the algorithm
to work. 

Also, just curious, why is this marked as a Critical Bug ?

 

> suspicious instantiation of java Random instances
> -------------------------------------------------
>
>                 Key: ZOOKEEPER-1990
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1990
>             Project: ZooKeeper
>          Issue Type: Bug
>    Affects Versions: 3.5.0
>            Reporter: Patrick Hunt
>            Assignee: Mark Fenes
>            Priority: Critical
>             Fix For: 3.5.4, 3.6.0
>
>
> It's not clear to me why we are doing this, but it looks very suspicious. Why aren't
we just calling "new Random()" in these cases? (even for the tests I don't really see it -
typically that would just be for repeatability)
> {noformat}
> ag "new Random[ \t]*\(" .
> src/java/main/org/apache/zookeeper/ClientCnxn.java
> 817:        private Random r = new Random(System.nanoTime());        
> src/java/main/org/apache/zookeeper/client/StaticHostProvider.java
> 75:       sourceOfRandomness = new Random(System.currentTimeMillis() ^ this.hashCode());
> 98:        sourceOfRandomness = new Random(randomnessSeed);
> src/java/main/org/apache/zookeeper/server/quorum/AuthFastLeaderElection.java
> 420:                rand = new Random(java.lang.Thread.currentThread().getId()
> src/java/main/org/apache/zookeeper/server/SyncRequestProcessor.java
> 64:    private final Random r = new Random(System.nanoTime());
> src/java/main/org/apache/zookeeper/server/ZooKeeperServer.java
> 537:        Random r = new Random(id ^ superSecret);
> 554:        Random r = new Random(sessionId ^ superSecret);
> src/java/test/org/apache/zookeeper/server/quorum/WatchLeakTest.java
> 271:        Random r = new Random(SESSION_ID ^ superSecret);
> src/java/test/org/apache/zookeeper/server/quorum/CommitProcessorTest.java
> 151:            Random rand = new Random(Thread.currentThread().getId());
> 258:            Random rand = new Random(Thread.currentThread().getId());
> 288:        Random rand = new Random(Thread.currentThread().getId());
> src/java/test/org/apache/zookeeper/test/StaticHostProviderTest.java
> 40:    private Random r = new Random(1);
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message