JDK-8254785 : compiler/graalunit/HotspotTest.java failed with "missing Graal intrinsics for: java/lang/StringLatin1.indexOfChar([BIII)I"
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 16
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2020-10-14
  • Updated: 2021-10-26
  • Resolved: 2020-10-21
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.
JDK 16
16 b21Fixed
Related Reports
Relates :  
Sub Tasks
JDK-8254789 :  
Description
The following test failed in the JDK16 CI:

compiler/graalunit/HotspotTest.java

Here's a snippet from the log file:

test(org.graalvm.compiler.hotspot.test.CheckGraalIntrinsics)
java.lang.AssertionError: missing Graal intrinsics for:
    java/lang/StringLatin1.indexOfChar([BIII)I

	at org.graalvm.compiler.hotspot.test.CheckGraalIntrinsics.test(CheckGraalIntrinsics.java:676)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runners.Suite.runChild(Suite.java:128)
	at org.junit.runners.Suite.runChild(Suite.java:27)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at com.oracle.mxtool.junit.MxJUnitWrapper.runRequest(MxJUnitWrapper.java:308)
	at com.oracle.mxtool.junit.MxJUnitWrapper.main(MxJUnitWrapper.java:224)
 554.2 ms

It looks like this test failure is caused by:

    JDK-8173585 Intrinsify StringLatin1.indexOf(char)
Comments
Removing jdk11u-fix-request as JDK-8173585 was rejected for 11u backport.
26-10-2021

Fix Request (11u): Follow-up to JDK-8173585. The patch was changed to add the new new intrinsic information near other string intrinsics in 11u in the Graal test. PR: https://github.com/openjdk/jdk11u-dev/pull/44
25-10-2021

Changeset: 2a063350 Author: Aleksey Shipilev <shade@openjdk.org> Date: 2020-10-21 06:09:54 +0000 URL: https://git.openjdk.java.net/jdk/commit/2a063350
21-10-2020

I am taking over, because it blocks other intrinsics work. It can just be added to toBeInvestigated list in CheckGraalIntrinsics.java, instead of problem-listing the entire test and thus missing even more intrinsics.
20-10-2020

ILW = Graal test fails due to new intrinsic (test bug), single test at tier1 (problem listed), no workaround = MMH = P3
15-10-2020

Lowered from P1 -> P3 since the failing sub-test is now ProblemListed.
14-10-2020

[~dcubed], graal unit tests can be excluded individually by adding entries to ProblemList-graal.txt : diff --git a/test/hotspot/jtreg/ProblemList-graal.txt b/test/hotspot/jtreg/ProblemList-graal.txt index f73a4883f42..634f2bc12f6 100644 --- a/test/hotspot/jtreg/ProblemList-graal.txt +++ b/test/hotspot/jtreg/ProblemList-graal.txt @@ -239,3 +239,5 @@ org.graalvm.compiler.replacements.test.classfile.ClassfileBytecodeProviderTest org.graalvm.compiler.core.test.deopt.CompiledMethodTest 8202955 org.graalvm.compiler.hotspot.test.ReservedStackAccessTest 8213567 windows-all + +org.graalvm.compiler.hotspot.test.CheckGraalIntrinsics 8254785
14-10-2020

Starting this bug as P1 since this is a Tier1 test failure with at least 3 instances per Tier1 job set.
14-10-2020