JDK-8261286 : vmTestbase/gc/lock/jniref/jnilocalreflock03/TestDescription.java failed with "NoClassDefFoundError: Could not initialize class java.util.concurrent.ThreadLocalRandom"
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 17
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • Submitted: 2021-02-07
  • Updated: 2021-05-11
  • Resolved: 2021-05-11
Related Reports
Duplicate :  
Relates :  
Description
The following test failed in the JDK17 CI:

vmTestbase/gc/lock/jniref/jnilocalreflock03/TestDescription.java

Here's a snippet from the log file:

elapsed=1810642 0\:30\:10.642

<snip>

#section:main
----------messages:(4/326)----------
command: main -XX:-UseGCOverheadLimit gc.lock.LockerTest -gp1 interned(randomString) -lockers jniLocalRef
reason: User specified action: run main/othervm/native -XX:-UseGCOverheadLimit gc.lock.LockerTest -gp1 interned(randomString) -lockers jniLocalRef 
Mode: othervm [/othervm specified]
elapsed time (seconds): 1810.627
----------configuration:(0/0)----------
----------System.out:(74/4914)----------
Stress time: 300 seconds
Stress iterations factor: 1
Stress threads factor: 1
Stress runs factor: 1
Max memory: 2051014656
Sleep time: 500
Iterations: 0
Number of threads: 24
Run GC thread: false
Run mem diag thread: false
Run forever: false
For random generator using seed: 8231682618051673251
To re-run test with same seed value please add "-Djdk.test.lib.random.seed=8231682618051673251" to command line.
Starting Thread[gc.lock.LockerTest$Worker@76c37b79,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@6008ba78,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@dfd1db3,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@2d61b6bf,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@17c47f5a,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@323adca0,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@574f4fd1,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@77bbdfc9,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@43b140cb,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@278a4bc1,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@a96a926,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@237a6a2a,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@6a04c196,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@1f254b54,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@20c50e0f,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@501e1b07,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@1cda78e3,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@2990efc7,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@212d298c,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@1cbc88d,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@4e19b537,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@605995e4,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@2870b12a,5,MainThreadGroup]
Starting Thread[gc.lock.LockerTest$Worker@77a09b09,5,MainThreadGroup]
Exception in 
gc.lock.LockerTest$Worker@6008ba78
java.lang.RuntimeException: java.lang.NoClassDefFoundError: Could not initialize class java.util.concurrent.ThreadLocalRandom
	at nsk.share.gc.gp.GarbageUtils.eatMemory(GarbageUtils.java:224)
	at nsk.share.gc.gp.GarbageUtils.eatMemory(GarbageUtils.java:144)
	at gc.lock.LockerTest$Worker.run(LockerTest.java:54)
	at nsk.share.runner.ThreadsRunner$ManagedThread.run(ThreadsRunner.java:106)
	at java.base/java.lang.Thread.run(Thread.java:831)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class java.util.concurrent.ThreadLocalRandom
	at java.base/java.util.concurrent.ConcurrentHashMap.fullAddCount(ConcurrentHashMap.java:2584)
	at java.base/java.util.concurrent.ConcurrentHashMap.addCount(ConcurrentHashMap.java:2334)
	at java.base/java.util.concurrent.ConcurrentHashMap.replaceNode(ConcurrentHashMap.java:1173)
	at java.base/java.util.concurrent.ConcurrentHashMap.remove(ConcurrentHashMap.java:1102)
	at java.base/java.lang.invoke.MethodType$ConcurrentWeakInternSet.expungeStaleElements(MethodType.java:1409)
	at java.base/java.lang.invoke.MethodType$ConcurrentWeakInternSet.get(MethodType.java:1368)
	at java.base/java.lang.invoke.MethodType.makeImpl(MethodType.java:343)
	at java.base/java.lang.invoke.MethodType.methodType(MethodType.java:287)
	at nsk.share.gc.gp.GarbageUtils.eatMemory(GarbageUtils.java:211)
	... 4 more
Failures summary:
java.lang.RuntimeException: java.lang.NoClassDefFoundError: Could not initialize class java.util.concurrent.ThreadLocalRandom
	at nsk.share.gc.gp.GarbageUtils.eatMemory(GarbageUtils.java:224)
	at nsk.share.gc.gp.GarbageUtils.eatMemory(GarbageUtils.java:144)
	at gc.lock.LockerTest$Worker.run(LockerTest.java:54)
	at nsk.share.runner.ThreadsRunner$ManagedThread.run(ThreadsRunner.java:106)
	at java.base/java.lang.Thread.run(Thread.java:831)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class java.util.concurrent.ThreadLocalRandom
	at java.base/java.util.concurrent.ConcurrentHashMap.fullAddCount(ConcurrentHashMap.java:2584)
	at java.base/java.util.concurrent.ConcurrentHashMap.addCount(ConcurrentHashMap.java:2334)
	at java.base/java.util.concurrent.ConcurrentHashMap.replaceNode(ConcurrentHashMap.java:1173)
	at java.base/java.util.concurrent.ConcurrentHashMap.remove(ConcurrentHashMap.java:1102)
	at java.base/java.lang.invoke.MethodType$ConcurrentWeakInternSet.expungeStaleElements(MethodType.java:1409)
	at java.base/java.lang.invoke.MethodType$ConcurrentWeakInternSet.get(MethodType.java:1368)
	at java.base/java.lang.invoke.MethodType.makeImpl(MethodType.java:343)
	at java.base/java.lang.invoke.MethodType.methodType(MethodType.java:287)
	at nsk.share.gc.gp.GarbageUtils.eatMemory(GarbageUtils.java:211)
	... 4 more
----------System.err:(16/954)----------
nsk.share.TestFailure: Test exit code: 97
	at nsk.share.test.Tests$TestRunner.execute(Tests.java:90)
	at nsk.share.test.Tests$TestRunner.run(Tests.java:96)
	at nsk.share.gc.GC.runTest(GC.java:114)
	at gc.lock.LockerTest.main(LockerTest.java:77)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
	at java.base/java.lang.Thread.run(Thread.java:831)

JavaTest Message: Test threw exception: nsk.share.TestFailure: Test exit code: 97
JavaTest Message: shutting down test

STATUS:Failed.`main' threw exception: nsk.share.TestFailure: Test exit code: 97
----------rerun:(43/6269)*----------

Starting this bug in hotspot/gc for initial triage since the test is in
vmTestbase/gc. The test failed after 30 minutes so I have to wonder
why this java.lang.NoClassDefFoundError was thrown.

The test task has the following JVM args: -XX:+CreateCoredumpOnCrash -XX:+UseZGC
Comments
[~lkorinth] - Why did you close this bug as Fixed?
08-02-2021