Uploaded image for project: 'OptaPlanner'
  1. OptaPlanner
  2. PLANNER-2173

Quarkus native build fails on 7.x and master due to mvel accumulate

    XMLWordPrintable

Details

    • 2020 Week 40-42 (from Sep 28)
    • 3
    • Undefined
    • NEW
    • NEW

    Description

      To reproduce:
      build quarkus-school-timetabling-quickstart with "mvn clean package -Dnative -DskipTests"

      The drools-mvel changes will likely fix it next week, after the 7.44 release, so the first fixed release would be 7.45.
      This issue is to track wether or not it's been fixed from OptaPlanner's point of view.

      [optaplanner-quarkus-school-timetabling-quickstart-0.1.0-SNAPSHOT-runner:36262]    (objects):  31,960.90 ms,  6.07 GB
      [optaplanner-quarkus-school-timetabling-quickstart-0.1.0-SNAPSHOT-runner:36262]   (features):   1,501.54 ms,  6.07 GB
      [optaplanner-quarkus-school-timetabling-quickstart-0.1.0-SNAPSHOT-runner:36262]     analysis:  64,940.70 ms,  6.07 GB
      Error: com.oracle.svm.hosted.substitute.DeletedElementException: Unsupported method java.lang.ClassLoader.defineClass1(ClassLoader, String, byte[], int, int, ProtectionDomain, String) is reachable
      To diagnose the issue, you can add the option --report-unsupported-elements-at-runtime. The unsupported element is then reported at run time when it is accessed the first time.
      Detailed message:
      Trace: 
              at parsing java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
      Call path from entry point to java.lang.ClassLoader.defineClass(String, byte[], int, int, ProtectionDomain): 
              at java.lang.ClassLoader.defineClass(ClassLoader.java:1015)
              at java.lang.ClassLoader.defineClass(ClassLoader.java:878)
              at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer$ContextClassLoader.defineClass(ASMAccessorOptimizer.java:2318)
              at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer.loadClass(ASMAccessorOptimizer.java:2329)
              at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer._initializeAccessor(ASMAccessorOptimizer.java:814)
              at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer.optimizeObjectCreation(ASMAccessorOptimizer.java:3330)
              at org.mvel2.ast.NewObjectNode.getReducedValueAccelerated(NewObjectNode.java:222)
              at org.mvel2.compiler.ExecutableAccessorSafe.getValue(ExecutableAccessorSafe.java:48)
              at org.mvel2.MVEL.executeExpression(MVEL.java:945)
              at org.drools.core.base.accumulators.MVELAccumulatorFunctionExecutor.accumulate(MVELAccumulatorFunctionExecutor.java:122)
              at org.drools.core.spi.Accumulator$SafeAccumulator$4.run(Accumulator.java:185)
              at com.oracle.svm.core.jdk.Target_java_security_AccessController.doPrivileged(SecuritySubstitutions.java:119)
              at java.net.Socket.getInputStream(Socket.java:930)
              at com.arjuna.ats.internal.arjuna.recovery.Connection.run(Connection.java:85)
              at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:517)
              at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)
              at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)
      
      com.oracle.svm.core.util.UserError$UserException: com.oracle.svm.hosted.substitute.DeletedElementException: Unsupported method java.lang.ClassLoader.defineClass1(ClassLoader, String, byte[], int, int, ProtectionDomain, String) is reachable
      To diagnose the issue, you can add the option --report-unsupported-elements-at-runtime. The unsupported element is then reported at run time when it is accessed the first time.
      Detailed message:
      Trace: 
              at parsing java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
      Call path from entry point to java.lang.ClassLoader.defineClass(String, byte[], int, int, ProtectionDomain): 
              at java.lang.ClassLoader.defineClass(ClassLoader.java:1015)
              at java.lang.ClassLoader.defineClass(ClassLoader.java:878)
              at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer$ContextClassLoader.defineClass(ASMAccessorOptimizer.java:2318)
              at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer.loadClass(ASMAccessorOptimizer.java:2329)
              at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer._initializeAccessor(ASMAccessorOptimizer.java:814)
              at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer.optimizeObjectCreation(ASMAccessorOptimizer.java:3330)
              at org.mvel2.ast.NewObjectNode.getReducedValueAccelerated(NewObjectNode.java:222)
              at org.mvel2.compiler.ExecutableAccessorSafe.getValue(ExecutableAccessorSafe.java:48)
              at org.mvel2.MVEL.executeExpression(MVEL.java:945)
              at org.drools.core.base.accumulators.MVELAccumulatorFunctionExecutor.accumulate(MVELAccumulatorFunctionExecutor.java:122)
              at org.drools.core.spi.Accumulator$SafeAccumulator$4.run(Accumulator.java:185)
              at com.oracle.svm.core.jdk.Target_java_security_AccessController.doPrivileged(SecuritySubstitutions.java:119)
              at java.net.Socket.getInputStream(Socket.java:930)
              at com.arjuna.ats.internal.arjuna.recovery.Connection.run(Connection.java:85)
              at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:517)
              at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)
              at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)
      
              at com.oracle.svm.core.util.UserError.abort(UserError.java:79)
              at com.oracle.svm.hosted.FallbackFeature.reportAsFallback(FallbackFeature.java:217)
              at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:765)
              at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:555)
              at com.oracle.svm.hosted.NativeImageGenerator.lambda$run$0(NativeImageGenerator.java:468)
              at java.base/java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1407)
              at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
              at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
              at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
              at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
              at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
      Caused by: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: com.oracle.svm.hosted.substitute.DeletedElementException: Unsupported method java.lang.ClassLoader.defineClass1(ClassLoader, String, byte[], int, int, ProtectionDomain, String) is reachable
      To diagnose the issue, you can add the option --report-unsupported-elements-at-runtime. The unsupported element is then reported at run time when it is accessed the first time.
      Detailed message:
      Trace: 
              at parsing java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
      Call path from entry point to java.lang.ClassLoader.defineClass(String, byte[], int, int, ProtectionDomain): 
              at java.lang.ClassLoader.defineClass(ClassLoader.java:1015)
              at java.lang.ClassLoader.defineClass(ClassLoader.java:878)
              at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer$ContextClassLoader.defineClass(ASMAccessorOptimizer.java:2318)
              at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer.loadClass(ASMAccessorOptimizer.java:2329)
              at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer._initializeAccessor(ASMAccessorOptimizer.java:814)
              at org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer.optimizeObjectCreation(ASMAccessorOptimizer.java:3330)
              at org.mvel2.ast.NewObjectNode.getReducedValueAccelerated(NewObjectNode.java:222)
              at org.mvel2.compiler.ExecutableAccessorSafe.getValue(ExecutableAccessorSafe.java:48)
              at org.mvel2.MVEL.executeExpression(MVEL.java:945)
              at org.drools.core.base.accumulators.MVELAccumulatorFunctionExecutor.accumulate(MVELAccumulatorFunctionExecutor.java:122)
              at org.drools.core.spi.Accumulator$SafeAccumulator$4.run(Accumulator.java:185)
              at com.oracle.svm.core.jdk.Target_java_security_AccessController.doPrivileged(SecuritySubstitutions.java:119)
              at java.net.Socket.getInputStream(Socket.java:930)
              at com.arjuna.ats.internal.arjuna.recovery.Connection.run(Connection.java:85)
              at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:517)
              at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)
              at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)
      
              at com.oracle.graal.pointsto.constraints.UnsupportedFeatures.report(UnsupportedFeatures.java:126)
              at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:762)
              ... 8 more
      Caused by: com.oracle.svm.hosted.substitute.DeletedElementException: Unsupported method java.lang.ClassLoader.defineClass1(ClassLoader, String, byte[], int, int, ProtectionDomain, String) is reachable
      To diagnose the issue, you can add the option --report-unsupported-elements-at-runtime. The unsupported element is then reported at run time when it is accessed the first time.
              at com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookup(AnnotationSubstitutionProcessor.java:183)
              at com.oracle.graal.pointsto.infrastructure.SubstitutionProcessor$ChainedSubstitutionProcessor.lookup(SubstitutionProcessor.java:128)
              at com.oracle.graal.pointsto.infrastructure.SubstitutionProcessor$ChainedSubstitutionProcessor.lookup(SubstitutionProcessor.java:128)
              at com.oracle.graal.pointsto.meta.AnalysisUniverse.lookupAllowUnresolved(AnalysisUniverse.java:404)
              at com.oracle.graal.pointsto.infrastructure.WrappedConstantPool.lookupMethod(WrappedConstantPool.java:125)
              at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.lookupMethodInPool(BytecodeParser.java:4313)
              at com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.lookupMethodInPool(SharedGraphBuilderPhase.java:113)
              at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.lookupMethod(BytecodeParser.java:4307)
              at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genInvokeStatic(BytecodeParser.java:1622)
              at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBytecode(BytecodeParser.java:5340)
              at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3413)
              at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBlock(BytecodeParser.java:3220)
              at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.build(BytecodeParser.java:1090)
              at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.buildRootMethod(BytecodeParser.java:984)
              at jdk.internal.vm.compiler/org.graalvm.compiler.java.GraphBuilderPhase$Instance.run(GraphBuilderPhase.java:84)
              at com.oracle.svm.hosted.phases.SharedGraphBuilderPhase.run(SharedGraphBuilderPhase.java:74)
              at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.run(Phase.java:49)
              at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:214)
              at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:42)
              at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:38)
              at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.parse(MethodTypeFlowBuilder.java:223)
              at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:357)
              at com.oracle.graal.pointsto.flow.MethodTypeFlow.doParse(MethodTypeFlow.java:313)
              at com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureParsed(MethodTypeFlow.java:302)
              at com.oracle.graal.pointsto.flow.MethodTypeFlow.addContext(MethodTypeFlow.java:103)
              at com.oracle.graal.pointsto.DefaultAnalysisPolicy$DefaultSpecialInvokeTypeFlow.onObservedUpdate(DefaultAnalysisPolicy.java:368)
              at com.oracle.graal.pointsto.flow.TypeFlow.notifyObservers(TypeFlow.java:470)
              at com.oracle.graal.pointsto.flow.TypeFlow.update(TypeFlow.java:542)
              at com.oracle.graal.pointsto.BigBang$2.run(BigBang.java:552)
              at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$execute$0(CompletionExecutor.java:173)
              at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
              ... 5 more
      

      Attachments

        Issue Links

          Activity

            People

              gdesmet@redhat.com Geoffrey De Smet (Inactive)
              gdesmet@redhat.com Geoffrey De Smet (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: