Uploaded image for project: 'ZooKeeper'
  1. ZooKeeper
  2. ZOOKEEPER-1990

suspicious instantiation of java Random instances

    Details

    • Type: Bug
    • Status: In Progress
    • Priority: Critical
    • Resolution: Unresolved
    • Affects Version/s: 3.5.0
    • Fix Version/s: 3.6.0, 3.5.5
    • Component/s: None
    • Labels:
      None

      Description

      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)

      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);
      
      

        Attachments

          Activity

            People

            • Assignee:
              mfenes Mark Fenes
              Reporter:
              phunt Patrick Hunt
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated: