ThreadLocalRandom clinit troubles
Bradford Wetmore
bradford.wetmore at oracle.com
Mon Jun 23 17:43:39 UTC 2014
Martin,
Thanks for filing. I was positive there was already a bug for this, but
for the life of me I can't find it now. There's some other more minor
cleanup that needs to take place, but seems like I've been in
escalation/firefighting mode for more than a year now and it hasn't
bubbled to the top.
Brad
On 6/21/2014 9:05 PM, Martin Buchholz wrote:
> While looking at NativePRNG, I filed
>
> https://bugs.openjdk.java.net/browse/JDK-8047769
>
> SecureRandom should be more frugal with file descriptors
>
> If I run this java program on Linux
>
> public class SecureRandoms {
> public static void main(String[] args) throws Throwable {
> new java.security.SecureRandom();
> }
> }
>
> it creates 6 file descriptors for /dev/random and /dev/urandom, as shown
> by:
>
> strace -q -ff -e open java SecureRandoms |& grep /dev/
> [pid 20769] open("/dev/random", O_RDONLY) = 5
> [pid 20769] open("/dev/urandom", O_RDONLY) = 6
> [pid 20769] open("/dev/random", O_RDONLY) = 7
> [pid 20769] open("/dev/random", O_RDONLY) = 8
> [pid 20769] open("/dev/urandom", O_RDONLY) = 9
> [pid 20769] open("/dev/urandom", O_RDONLY) = 10
>
> Looking at jdk/src/solaris/classes/sun/security/provider/NativePRNG.java
> it looks like 2 file descriptors are created for every variant of
> NativePRNG, whether or not they are ever used. Which is wasteful. In
> fact, you only ever need at most two file descriptors, one for
> /dev/random and one for /dev/urandom.
>
> Further, it would be nice if the file descriptors were closed when idle
> and lazily re-created. Especially /dev/random should typically be used
> at startup and never thereafter.
>
>
> On Fri, Jun 20, 2014 at 7:59 AM, Alan Bateman <Alan.Bateman at oracle.com
> <mailto:Alan.Bateman at oracle.com>> wrote:
>
> On 20/06/2014 15:02, Peter Levart wrote:
>
>
> And, as Martin pointed out, it seems to be used for tests that
> exercise particular responses from NameService API to test the
> behaviour of JDK classes. It would be a shame for those tests to
> go away.
>
> We've been talking about removing it for many years because it has
> been so troublesome. If we really need to having something for
> testing then I don't think it needs to be general purpose, we can
> get right of the lookup at least.
>
> -Alan.
>
>
More information about the security-dev
mailing list