Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8185795

Graal fails in case instrumented by jcov jdk is used

XMLWordPrintable

    • b36

      Jcov is used to gather jdk code coverage. To get this information we first instrument jdk and then run java tests against this instrumented jdk. The attempt to run HelloWord test using Graal as JIT compiler fails with:

      Thread[JVMCI CompilerThread6,9,system]: Compilation of jdk.internal.jimage.ImageLocation.decompress(ByteBuffer) failed: org.graalvm.compi
      ler.graph.GraalGraphError: jdk.vm.ci.common.JVMCIError: method contains safepoint, but has no deopt rescue slot
              at node: 533|ForeignCall#new_array(KlassPointer,int,boolean)Object
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.core.gen.NodeLIRBuilder.doBlock(NodeLIRBuilder.java:366)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.core.LIRGenerationPhase.emitBlock(LIRGenerationPhase.java:79)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.core.LIRGenerationPhase.run(LIRGenerationPhase.java:69)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.core.LIRGenerationPhase.run(LIRGenerationPhase.java:44)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.lir.phases.LIRPhase.apply(LIRPhase.java:115)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.lir.phases.LIRPhase.apply(LIRPhase.java:107)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.core.GraalCompiler.emitLIR0(GraalCompiler.java:312)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.core.GraalCompiler.emitLIR(GraalCompiler.java:276)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.core.GraalCompiler.emitBackEnd(GraalCompiler.java:256)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.core.GraalCompiler.compile(GraalCompiler.java:173)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.core.GraalCompiler.compileGraph(GraalCompiler.java:158)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.hotspot.HotSpotGraalCompiler.compile(HotSpotGraalCompiler.java:180)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.hotspot.CompilationTask$HotSpotCompilationWrapper.performCompilation
      (CompilationTask.java:168)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.hotspot.CompilationTask$HotSpotCompilationWrapper.performCompilation
      (CompilationTask.java:93)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.core.CompilationWrapper.run(CompilationWrapper.java:165)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.hotspot.CompilationTask.runCompilation(CompilationTask.java:312)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.hotspot.HotSpotGraalCompiler.compileMethod(HotSpotGraalCompiler.java
      :142)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.hotspot.HotSpotGraalCompiler.compileMethod(HotSpotGraalCompiler.java
      :108)
              at jdk.internal.vm.ci@10-internal/jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.compileMethod(HotSpotJVMCIRuntime.java:445)
      Caused by: jdk.vm.ci.common.JVMCIError: method contains safepoint, but has no deopt rescue slot
              at jdk.internal.vm.ci@10-internal/jdk.vm.ci.hotspot.CompilerToVM.installCode(Native Method)
              at jdk.internal.vm.ci@10-internal/jdk.vm.ci.hotspot.HotSpotCodeCacheProvider.installCode(HotSpotCodeCacheProvider.java:115)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.hotspot.stubs.Stub.getCode(Stub.java:203)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.finalizeAddress(HotSpotForeign
      CallLinkageImpl.java:245)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.hotspot.meta.HotSpotForeignCallsProviderImpl.lookupForeignCall(HotSp
      otForeignCallsProviderImpl.java:171)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.hotspot.meta.HotSpotForeignCallsProviderImpl.lookupForeignCall(HotSp
      otForeignCallsProviderImpl.java:57)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.nodes.extended.ForeignCallNode.generate(ForeignCallNode.java:167)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.core.gen.NodeLIRBuilder.emitNode(NodeLIRBuilder.java:455)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.core.gen.NodeLIRBuilder.doRoot(NodeLIRBuilder.java:445)
              at jdk.internal.vm.compiler@10-internal/org.graalvm.compiler.core.gen.NodeLIRBuilder.doBlock(NodeLIRBuilder.java:362)
              ... 18 more



      Graal team, please help to understand if this is graal issue or jcov does something which is not proper from graal point of view. Please note that we didn't try to run graal with instrumented jdk9/jdk10 before.

        1. 8185795.verifyerror.log
          3 kB
          Ekaterina Pavlova
        2. tostring.txt
          8 kB
          Igor Veresov

            epavlova Ekaterina Pavlova
            epavlova Ekaterina Pavlova
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: