JDK-8291656 : compiler/jvmci/compilerToVM/IsMatureTest.java fails with "RuntimeException: Unexpected isMature state for multiple times invoked method: expected false to equal true"
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 11,17,20,21,23,24,25
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • OS: generic
  • CPU: generic
  • Submitted: 2022-08-01
  • Updated: 2025-04-29
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdUnresolved
Related Reports
Relates :  
Description
The following test failed in the JDK20 CI:

compiler/jvmci/compilerToVM/IsMatureTest.java

Here's a snippet from the log file:

#section:main
----------messages:(5/683)----------
command: main -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI compiler.jvmci.compilerToVM.IsMatureTest
reason: User specified action: run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI compiler.jvmci.compilerToVM.IsMatureTest 
Mode: othervm [/othervm specified, test or library overrides a system module]
Additional options from @modules: --add-modules java.base,jdk.internal.vm.ci --add-exports java.base/jdk.internal.misc=ALL-UNNAMED --add-exports jdk.internal.vm.ci/jdk.vm.ci.hotspot=ALL-UNNAMED
elapsed time (seconds): 1.131
----------configuration:(6/594)----------
Boot Layer
  add modules: java.base jdk.internal.vm.ci         
  add exports: java.base/jdk.internal.misc          ALL-UNNAMED
               jdk.internal.vm.ci/jdk.vm.ci.hotspot ALL-UNNAMED
  patch:       jdk.internal.vm.ci                   /opt/mach5/mesos/work_dir/slaves/0c72054a-24ab-4dbb-944f-97f9341a1b96-S45873/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/d01a5b22-be89-43f8-89a4-ae66486c904a/runs/f5d536d1-b957-4d76-8c5f-15552710efd5/testoutput/test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_2/classes/3/compiler/jvmci/common/patches/jdk.internal.vm.ci

----------System.out:(0/0)----------
----------System.err:(15/1077)----------
java.lang.RuntimeException: Unexpected isMature state for multiple times invoked method: expected false to equal true
	at jdk.test.lib.Asserts.fail(Asserts.java:594)
	at jdk.test.lib.Asserts.assertEquals(Asserts.java:205)
	at jdk.test.lib.Asserts.assertEQ(Asserts.java:178)
	at compiler.jvmci.compilerToVM.IsMatureTest.test(IsMatureTest.java:83)
	at compiler.jvmci.compilerToVM.IsMatureTest.main(IsMatureTest.java:59)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	at java.base/java.lang.reflect.Method.invoke(Method.java:578)
	at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
	at java.base/java.lang.Thread.run(Thread.java:1589)

JavaTest Message: Test threw exception: java.lang.RuntimeException: Unexpected isMature state for multiple times invoked method: expected false to equal true
JavaTest Message: shutting down test

STATUS:Failed.`main' threw exception: java.lang.RuntimeException: Unexpected isMature state for multiple times invoked method: expected false to equal true
----------rerun:(49/9309)*----------
Comments
The issue is observed on different OSes ad CPU arch. Removed specification.
18-02-2025

Spotted in the jdk-24+15-1632-tier3 CI job set: compiler/jvmci/compilerToVM/IsMatureTest.java https://mach5.us.oracle.com/mdash/jobs/mach5-one-jdk-24+15-1632-tier3-20240911-1021-16543424/tasks/mach5-one-jdk-24+15-1632-tier3-20240911-1021-16543424-tier3-rt-LegacyLocking-tier1_compiler-macosx-aarch64-debug-391/results?search=%28%28status%3A%28failed%20OR%20FAILED%29%20AND%20-state%3Ainvalid%29%20OR%20%28status%3AEXECUTED_WITH_FAILURE%20AND%20taskType%3Abuild%20AND%20-state%3Ainvalid%29%29 https://mach5.us.oracle.com:10060/api/v1/results/mach5-one-jdk-24+15-1632-tier3-20240911-1021-16543424-tier3-rt-LegacyLocking-tier1_compiler-macosx-aarch64-debug-391-1726051252-673/log macosx-aarch64-debug: jpg-mac-arm-793.oraclecorp.com
11-09-2024

We see similar in open jdk17u-dev (20.1.2023 and 9.9.2024) and jdk23 (14.4.2024). on windowx86_64 and linuxx86_64. Thus it reproduces very seldom, but consistently. ----------System.out:(0/0)---------- ----------System.err:(17/1278)---------- java.lang.RuntimeException: Unexpected isMature state for multiple times invoked method: expected false to equal true at jdk.test.lib.Asserts.fail(Asserts.java:594) at jdk.test.lib.Asserts.assertEquals(Asserts.java:205) at jdk.test.lib.Asserts.assertEQ(Asserts.java:178) at compiler.jvmci.compilerToVM.IsMatureTest.test(IsMatureTest.java:85) at compiler.jvmci.compilerToVM.IsMatureTest.main(IsMatureTest.java:59) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138) at java.base/java.lang.Thread.run(Thread.java:840) JavaTest Message: Test threw exception: java.lang.RuntimeException: Unexpected isMature state for multiple times invoked method: expected false to equal true JavaTest Message: shutting down test STATUS:Failed.`main' threw exception: java.lang.RuntimeException: Unexpected isMature state for multiple times invoked method: expected false to equal true ----------rerun:(47/6268)*---------- cd '...\\scratch\\5' && \\ PATH='...' \\ SystemDrive=C: \\ SystemRoot='C:\\Windows' \\ TEMP='C:\\Temp' \\ TMP='C:\\Temp' \\ windir='C:\\Windows' \\ CLASSPATH='...\\classes\\13\\compiler\\jvmci\\compilerToVM\\IsMatureTest.d;...\jtreg\\test\\hotspot\\jtreg\\compiler\\jvmci\\compilerToVM;...\\classes\\13;...\jtreg\\test\\hotspot\\jtreg;...\\classes\\13\\test\\lib;...\jtreg\\test\\lib;...\\jtreg.jar' \\ '...\testee-vm\\bin\\java' \\ -Dtest.vm.opts='-XX:-CreateCoredumpOnCrash -Xmx768m -Djava.awt.headless=true -Djava.util.prefs.userRoot=...\jtreg_hotspot_tier1_work\\tmp -Djava.io.tmpdir=...\jtreg_hotspot_tier1_work\\tmp -Dtest.getfreeport.max.tries=40 -Djdk.test.lib.artifacts.devkit-windows_x64...\\devkit-vs2017-15.9.49 -ea -esa' \\ -Dtest.tool.vm.opts='-J-XX:-CreateCoredumpOnCrash -J-Xmx768m -J-Djava.awt.headless=true -J-Djava.util.prefs.userRoot=...\jtreg_hotspot_tier1_work\\tmp -J-Djava.io.tmpdir=...\jtreg_hotspot_tier1_work\\tmp -J-Dtest.getfreeport.max.tries=40 -J-Djdk.test.lib.artifacts.devkit-windows_x64=D:\\jvmtests\\artifacts\\devkit-vs2017-15.9.49 -J-ea -J-esa' \\ -Dtest.compiler.opts= \\ -Dtest.java.opts= \\ -Dtest.jdk='...\testee-vm' \\ -Dcompile.jdk='...\testee-vm' \\ -Dtest.timeout.factor=9.0 \\ -Dtest.nativepath='...\jtreg\\test\\hotspot\\jtreg\\native' \\ -Dtest.root='...\jtreg\\test\\hotspot\\jtreg' \\ -Dtest.name=compiler/jvmci/compilerToVM/IsMatureTest.java \\ -Dtest.file='...\jtreg\\test\\hotspot\\jtreg\\compiler\\jvmci\\compilerToVM\\IsMatureTest.java' \\ -Dtest.src='...\jtreg\\test\\hotspot\\jtreg\\compiler\\jvmci\\compilerToVM' \\ -Dtest.src.path='...\jtreg\\test\\hotspot\\jtreg\\compiler\\jvmci\\compilerToVM;...\jtreg\\test\\hotspot\\jtreg;...\jtreg\\test\\lib' \\ -Dtest.classes='...\\classes\\13\\compiler\\jvmci\\compilerToVM\\IsMatureTest.d' \\ -Dtest.class.path='...\\classes\\13\\compiler\\jvmci\\compilerToVM\\IsMatureTest.d;...\\classes\\13;...\\classes\\13\\test\\lib' \\ -Dtest.class.path.prefix='...\\classes\\13\\compiler\\jvmci\\compilerToVM\\IsMatureTest.d;...\jtreg\\test\\hotspot\\jtreg\\compiler\\jvmci\\compilerToVM;...\\classes\\13;...\\classes\\13\\test\\lib' \\ -Dtest.modules='java.base/jdk.internal.misc jdk.internal.vm.ci/jdk.vm.ci.hotspot' \\ -Dtest.patch.path='...\\classes\\13\\compiler\\jvmci\\common\\patches' \\ --patch-module 'jdk.internal.vm.ci=...\\classes\\13\\compiler\\jvmci\\common\\patches\\jdk.internal.vm.ci' \\ --add-modules java.base,jdk.internal.vm.ci \\ --add-exports java.base/jdk.internal.misc=ALL-UNNAMED \\ --add-exports jdk.internal.vm.ci/jdk.vm.ci.hotspot=ALL-UNNAMED \\ -XX:-CreateCoredumpOnCrash \\ -Xmx768m \\ -Djava.awt.headless=true \\ '-Djava.util.prefs.userRoot=...\jtreg_hotspot_tier1_work\\tmp' \\ '-Djava.io.tmpdir=...\jtreg_hotspot_tier1_work\\tmp' \\ -Dtest.getfreeport.max.tries=40 \\ '-Djdk.test.lib.artifacts.devkit-windows_x64=D:\\jvmtests\\artifacts\\devkit-vs2017-15.9.49' \\ -ea \\ -esa \\ '-Djava.library.path=...\jtreg\\test\\hotspot\\jtreg\\native' \\ -Xbootclasspath/a:. \\ -XX:+UnlockDiagnosticVMOptions \\ -XX:+WhiteBoxAPI \\ -XX:+UnlockExperimentalVMOptions \\ -XX:+EnableJVMCI \\ com.sun.javatest.regtest.agent.MainWrapper '...\\compiler\\jvmci\\compilerToVM\\IsMatureTest.d\\main.1.jta'
09-09-2024

[~iveresov], could you please have a look?
02-08-2022

Looks similar to JDK-8266988 and JDK-8219555. ILW = Same as JDK-8266988 = P4
02-08-2022