-
Bug
-
Resolution: Fixed
-
P3
-
8, 11, 13, 15, 17, 18
-
b09
-
x86_64
-
windows
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8273003 | 17.0.2 | David Holmes | P3 | Resolved | Fixed | b01 |
JDK-8273210 | 17.0.1 | David Holmes | P3 | Resolved | Fixed | b09 |
JDK-8272782 | 15.0.5 | Vladimir Kempik | P3 | Resolved | Fixed | b01 |
JDK-8272912 | 13.0.9 | Vladimir Kempik | P3 | Resolved | Fixed | b02 |
JDK-8273180 | 11.0.14-oracle | Harold Seigel | P3 | Resolved | Fixed | b01 |
JDK-8273036 | 11.0.13 | Vladimir Kempik | P3 | Resolved | Fixed | b05 |
applications/runthese/RunThese24H.java
Here's a snippet from the log file:
[stress.process.out] testReplacementAfterExchange: Passed. OKAY
[stress.process.out] testTimedExchange_InterruptedException: Passed. OKAY
[stress.process.out] java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because the return value of "java.lang.management.ThreadInfo.getLockName()" is null
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.dumpTestThreads(JSR166TestCase.java:659)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.threadRecordFailure(JSR166TestCase.java:320)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.threadFail(JSR166TestCase.java:399)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.awaitTermination(JSR166TestCase.java:1045)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.awaitTermination(JSR166TestCase.java:1056)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.ExchangerTest.testExchange(ExchangerTest.java:49)
[stress.process.out] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[stress.process.out] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[stress.process.out] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[stress.process.out] at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[stress.process.out] at javasoft.sqe.tests.api.junit.TestCase.invokeTestCase(TestCase.java:50)
[stress.process.out] at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:193)
[stress.process.out] at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:125)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.ExchangerTest.main(ExchangerTest.java:27)
[stress.process.out] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[stress.process.out] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[stress.process.out] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[stress.process.out] at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[stress.process.out] at applications.kitchensink.process.stress.modules.JckStressModule$TestRunner$1.run(JckStressModule.java:275)
[stress.process.out] testExchange: Failed. Test case throws exception: java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because the return value of "java.lang.management.ThreadInfo.getLockName()" is null
[stress.process.out] testSpliterator_characteristics: Passed. OKAY
[stress.process.out] testSpliterator_getComparator: Passed. OKAY
[stress.process.out] testNanoTime: Failed. tearDown failed: java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because the return value of "java.lang.management.ThreadInfo.getLockName()" is null
[stress.process.out] testCallable3: Passed. OKAY
[stress.process.out] testCallableNPE1: Passed. OKAY
[stress.process.out] testNewCachedThreadPool1: Passed. OKAY
[stress.process.out] testNewSingleThreadExecutor3: Passed. OKAY
[stress.process.out] testPrivilegedCallableWithPrivs: Passed. OKAY
[stress.process.out] testNewScheduledThreadPool: Passed. OKAY
[stress.process.out] testTimedCallable: Passed. OKAY
[stress.process.out] testCallable1: Passed. OKAY
[stress.process.out] testCallableNPE4: Passed. OKAY
[stress.process.out] testCallableNPE3: Passed. OKAY
[stress.process.out] testCallable4: Passed. OKAY
[stress.process.out] testCallable2: Passed. OKAY
[stress.process.out] testCallableNPE2: Passed. OKAY
[stress.process.out] testCreatePrivilegedCallableUsingCCLWithNoPrivs: Failed. tearDown failed: java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because the return value of "java.lang.management.ThreadInfo.getLockName()" is null
[stress.process.out] testUnconfigurableScheduledExecutorServiceNPE: Failed. tearDown failed: java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because the return value of "java.lang.management.ThreadInfo.getLockName()" is null
[stress.process.out] testNewFixedThreadPool4: Passed. OKAY
[stress.process.out] testNewSingleThreadScheduledExecutor: Passed. OKAY
[stress.process.out] testUnconfigurableExecutorServiceNPE: Passed. OKAY
[stress.process.out] testPrivilegedCallableUsingCCLWithPrivs: Passed. OKAY
[stress.process.out] java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because the return value of "java.lang.management.ThreadInfo.getLockName()" is null
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.dumpTestThreads(JSR166TestCase.java:659)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.threadRecordFailure(JSR166TestCase.java:320)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.threadUnexpectedException(JSR166TestCase.java:510)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.await(JSR166TestCase.java:1217)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.await(JSR166TestCase.java:1222)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.ExecutorsTest.testDefaultThreadFactory(ExecutorsTest.java:332)
[stress.process.out] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[stress.process.out] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[stress.process.out] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[stress.process.out] at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[stress.process.out] at javasoft.sqe.tests.api.junit.TestCase.invokeTestCase(TestCase.java:50)
[stress.process.out] at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:193)
[stress.process.out] at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:125)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.ExecutorsTest.main(ExecutorsTest.java:38)
[stress.process.out] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[stress.process.out] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[stress.process.out] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[stress.process.out] at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[stress.process.out] at applications.kitchensink.process.stress.modules.JckStressModule$TestRunner$1.run(JckStressModule.java:275)
[stress.process.out] testTwoParties: Passed. OKAY
[stress.process.out] testResetAfterCommandException: Passed. OKAY
[stress.process.out] testMoreTasksThanParties: Passed. OKAY
[stress.process.out] testAwait5_Timeout_BrokenBarrier: Passed. OKAY
[stress.process.out] testReset_NoBrokenBarrier: Passed. OKAY
[stress.process.out] testConstructor2: Passed. OKAY
[stress.process.out] testConstructor1: Passed. OKAY
[stress.process.out] testAwait2_Interrupted_BrokenBarrier: Passed. OKAY
[stress.process.out] testAwait1_Interrupted_BrokenBarrier: Passed. OKAY
[stress.process.out] testReset_Leakage: Passed. OKAY
[stress.process.out] testGetParties: Passed. OKAY
[stress.process.out] testSingleParty: Passed. OKAY
[stress.process.out] testBarrierAction: Passed. OKAY
[stress.process.out] testResetAfterTimeout: Passed. OKAY
[stress.process.out] testAwait3_TimeoutException: Passed. OKAY
[stress.process.out] testAwait4_Timeout_BrokenBarrier: Passed. OKAY
[stress.process.out] testReset_BrokenBarrier: Passed. OKAY
[stress.process.out] testResetAfterInterrupt: Failed. tearDown failed: java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because the return value of "java.lang.management.ThreadInfo.getLockName()" is null
[stress.process.out] java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because the return value of "java.lang.management.ThreadInfo.getLockName()" is null
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.dumpTestThreads(JSR166TestCase.java:659)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.threadRecordFailure(JSR166TestCase.java:320)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.threadFail(JSR166TestCase.java:399)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.awaitTermination(JSR166TestCase.java:1045)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.awaitTermination(JSR166TestCase.java:1056)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.CyclicBarrierTest.testResetWithoutBreakage(CyclicBarrierTest.java:382)
[stress.process.out] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[stress.process.out] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[stress.process.out] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[stress.process.out] at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[stress.process.out] at javasoft.sqe.tests.api.junit.TestCase.invokeTestCase(TestCase.java:50)
[stress.process.out] at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:193)
[stress.process.out] at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:125)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.CyclicBarrierTest.main(CyclicBarrierTest.java:33)
[stress.process.out] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[stress.process.out] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[stress.process.out] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[stress.process.out] at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[stress.process.out] at applications.kitchensink.process.stress.modules.JckStressModule$TestRunner$1.run(JckStressModule.java:275)
[stress.process.out] testResetWithoutBreakage: Failed. Test case throws exception: java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because the return value of "java.lang.management.ThreadInfo.getLockName()" is null
[stress.process.out] testGetAndSetDefaultUncaughtExceptionHandler: Failed. tearDown failed: java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because the return value of "java.lang.management.ThreadInfo.getLockName()" is null
[stress.process.out] testGetAndSetUncaughtExceptionHandler: Failed. tearDown failed: java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because the return value of "java.lang.management.ThreadInfo.getLockName()" is null
[stress.process.out] testDefaultThreadFactory: Failed. Test case throws exception: java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because the return value of "java.lang.management.ThreadInfo.getLockName()" is null
[stress.process.out] java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because the return value of "java.lang.management.ThreadInfo.getLockName()" is null
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.dumpTestThreads(JSR166TestCase.java:659)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.threadRecordFailure(JSR166TestCase.java:320)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.threadUnexpectedException(JSR166TestCase.java:510)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase$CheckedRunnable.run(JSR166TestCase.java:1068)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.runWithSecurityManagerWithPermissions(JSR166TestCase.java:816)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.runWithPermissions(JSR166TestCase.java:788)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.JSR166TestCase.runWithoutPermissions(JSR166TestCase.java:828)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.ExecutorsTest.testPrivilegedCallableWithNoPrivs(ExecutorsTest.java:455)
[stress.process.out] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[stress.process.out] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[stress.process.out] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[stress.process.out] at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[stress.process.out] at javasoft.sqe.tests.api.junit.TestCase.invokeTestCase(TestCase.java:50)
[stress.process.out] at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:193)
[stress.process.out] at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:125)
[stress.process.out] at javasoft.sqe.tests.api.java.util.concurrent.ExecutorsTest.main(ExecutorsTest.java:38)
[stress.process.out] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[stress.process.out] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[stress.process.out] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[stress.process.out] at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[stress.process.out] at applications.kitchensink.process.stress.modules.JckStressModule$TestRunner$1.run(JckStressModule.java:275)
[stress.process.out] #
[stress.process.out] # A fatal error has been detected by the Java Runtime Environment:
[stress.process.out] #
[stress.process.out] # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffbc228d1d7, pid=49332, tid=9016
[stress.process.out] #
[stress.process.out] # JRE version: Java(TM) SE Runtime Environment (18.0+5) (build 18-ea+5-146)
[stress.process.out] # Java VM: Java HotSpot(TM) 64-Bit Server VM (18-ea+5-146, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
[stress.process.out] # Problematic frame:
[stress.process.out] # V [jvm.dll+0x38d1d7] java_lang_Thread::get_thread_status+0x7
[stress.process.out] #
[stress.process.out] # No core dump will be written. Minidumps are not enabled by default on client versions of Windows
[stress.process.out] #
[stress.process.out] # JFR recording file will be written. Location: T:\\testoutput\\test-support\\jtreg_closed_test_hotspot_jtreg_applications_runthese_RunThese24H_java\\scratch\\0\\hs_err_pid49332.jfr
[stress.process.out] #
[stress.process.out] Unsupported internal testing APIs have been used.
[stress.process.out]
[stress.process.out] # An error report file with more information is saved as:
[stress.process.out] # T:\\testoutput\\test-support\\jtreg_closed_test_hotspot_jtreg_applications_runthese_RunThese24H_java\\scratch\\0\\hs_err_pid49332.log
Please note that the test was reporting NULL return values from
java.lang.management.ThreadInfo.getLockName() before the
EXCEPTION_ACCESS_VIOLATION crash. It is possible that the
code that is calling ThreadInfo.getLockName() is not properly coded
to handle NULL return values. ThreadInfo.getLockName() is racy
with respect to thread exit so it is possible for the target thread to
exit while the ThreadInfo.getLockName() query is running. In that
case, the API is supposed to return NULL.
Here's the crashing thread's stack:
--------------- T H R E A D ---------------
Current thread (0x000001c75b74c810): VMThread "VM Thread" [stack: 0x0000000f91400000,0x0000000f91500000] [id=9016]
Stack: [0x0000000f91400000,0x0000000f91500000], sp=0x0000000f914ff0e8, free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0x38d1d7] java_lang_Thread::get_thread_status+0x7 (javaClasses.cpp:1836)
siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x0000000000000028
It's the VM thread that's crashing here. I suspect a NULL ptr
has been passed in via some API. The VMThread usually
protects itself against such things so I'm not sure what
happened here.
- backported by
-
JDK-8272782 RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in java_lang_Thread::get_thread_status
- Resolved
-
JDK-8272912 RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in java_lang_Thread::get_thread_status
- Resolved
-
JDK-8273003 RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in java_lang_Thread::get_thread_status
- Resolved
-
JDK-8273036 RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in java_lang_Thread::get_thread_status
- Resolved
-
JDK-8273180 RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in java_lang_Thread::get_thread_status
- Resolved
-
JDK-8273210 RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in java_lang_Thread::get_thread_status
- Resolved
- relates to
-
JDK-8273107 RunThese24H times out with "java.lang.management.ThreadInfo.getLockName()" is null
- Resolved
- links to
-
Commit openjdk/jdk11u-dev/cb0775ff
-
Commit openjdk/jdk13u-dev/75ccf0a1
-
Commit openjdk/jdk15u-dev/513a0353
-
Commit openjdk/jdk17u/671dab61
-
Commit openjdk/jdk/7e518f42
-
Review openjdk/jdk11u-dev/285
-
Review openjdk/jdk13u-dev/254
-
Review openjdk/jdk15u-dev/90
-
Review openjdk/jdk17u/38
-
Review openjdk/jdk/4921