hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Todd Lipcon (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-13382) IntegrationTestBigLinkedList should use SecureRandom
Date Wed, 01 Apr 2015 22:54:52 GMT
Todd Lipcon created HBASE-13382:

             Summary: IntegrationTestBigLinkedList should use SecureRandom
                 Key: HBASE-13382
                 URL: https://issues.apache.org/jira/browse/HBASE-13382
             Project: HBase
          Issue Type: Bug
          Components: integration tests
            Reporter: Todd Lipcon

IntegrationTestBigLinkedList currently uses java.util.Random to generate its random keys.
The keys are 128 bits long, but we generate them using Random.nextBytes(). The Random implementation
itself only has a 48-bit seed, so even though we have a very long key string, it doesn't have
anywhere near that amount of entropy.

This means that after a few billion rows, it's quite likely to run into a collision:  filling
in a 16-byte key is equivalent to four calls to rand.nextInt(). So, for 10B rows, we are cycling
through 40B different 'seed' values. With a 48-bit seed, it's quite likely we'll end up using
the same seed twice, after which point any future rows generated by the colliding mappers
are going to be equal. This results in broken chains and a failed verification job.

The fix is simple -- we should use SecureRandom to generate the random keys, instead.

This message was sent by Atlassian JIRA

View raw message