JDK-8186136 : [Graal] some tests setting -Djvmci.Compiler=null fail with: jdk.vm.ci.common.JVMCIError: no JVMCI compiler selected
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 10
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2017-08-11
  • Updated: 2017-09-01
  • Resolved: 2017-08-25
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 10
10 b22Fixed
Related Reports
Relates :  
Description
These tests fail when running with Graal:

compiler/jvmci/compilerToVM/HasCompiledCodeForOSRTest.java
compiler/jvmci/compilerToVM/MaterializeVirtualObjectTest.java
compiler/jvmci/JVM_GetJVMCIRuntimeTest.java

with this exception:

jdk.vm.ci.common.JVMCIError: no JVMCI compiler selected
	at jdk.internal.vm.ci/jdk.vm.ci.hotspot.HotSpotJVMCICompilerConfig$DummyCompilerFactory.compileMethod(HotSpotJVMCICompilerConfig.java:45)
	at jdk.internal.vm.ci/jdk.vm.ci.hotspot.HotSpotJVMCICompilerConfig$DummyCompilerFactory.compileMethod(HotSpotJVMCICompilerConfig.java:42)
	at jdk.internal.vm.ci/jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.compileMethod(HotSpotJVMCIRuntime.java:433)

Comments
webrev: http://cr.openjdk.java.net/~kvn/8186136/webrev.01/
25-08-2017

[~epavlova] Katya, did you hit this failure in your testing of Graal?
24-08-2017

I think most of jvmci tests do not need 'Compiler' for execution - using -Djvmci.Compiler=null is correct thing I think. We reduce testing time if we don't load Graal. Doug, is it right? I am fixing only failed tests.
24-08-2017

Which should be the case for a while :-)
23-08-2017

Yes, -XX:+UseJVMCICompiler should pick up Graal by default (as long as it's the only JVMCI compiler available).
23-08-2017

Why specify -Djvmci.Compiler=graal instead of just removing -Djvmci.Compiler=null? By default it should take Graal. Right?
23-08-2017

Sorry, I can't recall. Interestingly, HasCompiledCodeForOSRTest and MaterializeVirtualObjectTest (now?) pass on JDK 9+181 without -Djvmci.Compiler=null.
23-08-2017

What was the reason we had to set -Djvmci.Compiler=null in the first place?
23-08-2017

This patch seems to work: diff -r 63173f711788 test/compiler/jvmci/compilerToVM/HasCompiledCodeForOSRTest.java --- a/test/compiler/jvmci/compilerToVM/HasCompiledCodeForOSRTest.java Wed Aug 23 15:47:41 2017 +0200 +++ b/test/compiler/jvmci/compilerToVM/HasCompiledCodeForOSRTest.java Wed Aug 23 18:26:47 2017 +0200 @@ -39,7 +39,7 @@ * @run main/othervm -Xbootclasspath/a:. * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI * -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -XX:-BackgroundCompilation -Djvmci.Compiler=null + * -XX:-BackgroundCompilation -Djvmci.Compiler=graal * compiler.jvmci.compilerToVM.HasCompiledCodeForOSRTest */
23-08-2017

ILW = 3 jvmci tests failures; with graal; disable graal! = MLM = P4 Can this one also be a testbug related to JDK-8186144
23-08-2017

I'm not exactly sure. [~dnsimon]?
14-08-2017

What is the fix? Remove -Djvmci.Compiler=null ?
11-08-2017