Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

quarkus-integration-test-jpa-mysql build fails in native mode with JDK 11 #6019

Closed
gwenneg opened this issue Dec 8, 2019 · 2 comments
Closed
Labels
env/graalvm-java11 Relating to using GraalVM native image generation on Java 11 kind/bug Something isn't working triage/duplicate This issue or pull request already exists

Comments

@gwenneg
Copy link
Member

gwenneg commented Dec 8, 2019

Describe the bug

[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] Running Quarkus native-image plugin on GraalVM Version 19.3.0 CE
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] /Library/Java/JavaVirtualMachines/graalvm-ce-java11-19.3.0/Contents/Home/bin/native-image -J-Dsun.nio.ch.maxUpdateArraySize=100 -J-Djava.util.logging.manager=org.jboss.logmanager.LogManager -J-DCoordinatorEnvironmentBean.transactionStatusManagerEnable=false -J-Dvertx.logger-delegate-factory-class-name=io.quarkus.vertx.core.runtime.VertxLogDelegateFactory -J-Dvertx.disableDnsResolver=true -J-Dio.netty.leakDetection.level=DISABLED -J-Dio.netty.allocator.maxOrder=1 -H:+TraceClassInitialization --initialize-at-build-time= -H:InitialCollectionPolicy=com.oracle.svm.core.genscavenge.CollectionPolicy$BySpaceAndTime -jar quarkus-integration-test-jpa-mysql-999-SNAPSHOT-runner.jar -H:FallbackThreshold=0 -H:+ReportExceptionStackTraces -H:+AddAllCharsets -H:+IncludeAllTimeZones -H:EnableURLProtocols=http,https --enable-all-security-services -H:+JNI --no-server -H:-UseServiceLoaderFeature -H:+StackTrace quarkus-integration-test-jpa-mysql-999-SNAPSHOT-runner
[quarkus-integration-test-jpa-mysql-999-SNAPSHOT-runner:47770]    classlist:  29,510.20 ms
[quarkus-integration-test-jpa-mysql-999-SNAPSHOT-runner:47770]        (cap):   5,976.30 ms
[quarkus-integration-test-jpa-mysql-999-SNAPSHOT-runner:47770]        setup:  10,928.79 ms
09:32:02,415 INFO  [org.hib.Version] HHH000412: Hibernate Core {5.4.10.Final}
09:32:02,478 INFO  [org.hib.ann.com.Version] HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
09:32:06,591 INFO  [org.jbo.threads] JBoss Threads version 3.0.0.Final
[quarkus-integration-test-jpa-mysql-999-SNAPSHOT-runner:47770]     analysis:  74,717.29 ms
Fatal error: com.oracle.graal.pointsto.util.AnalysisError$ParsingError: Error encountered while parsing com.mysql.cj.jdbc.ha.ReplicationConnectionProxy.createProxyInstance(com.mysql.cj.conf.url.ReplicationConnectionUrl) 
Parsing context:
	parsing com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:208)
	parsing org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38)
	parsing org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58)
	parsing org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.addConnections(DriverManagerConnectionProviderImpl.java:331)
	parsing org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:250)
	parsing org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:228)
	parsing org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections$Builder.build(DriverManagerConnectionProviderImpl.java:369)
	parsing org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:98)
	parsing org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:73)
	parsing org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:107)
	parsing org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:246)
	parsing org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
	parsing io.quarkus.hibernate.orm.runtime.boot.FastBootMetadataBuilder.registerIdentifierGenerators(FastBootMetadataBuilder.java:534)
	parsing io.quarkus.hibernate.orm.runtime.boot.FastBootMetadataBuilder.<init>(FastBootMetadataBuilder.java:136)
	parsing io.quarkus.hibernate.orm.runtime.PersistenceUnitsHolder.createMetadata(PersistenceUnitsHolder.java:110)
	parsing io.quarkus.hibernate.orm.runtime.PersistenceUnitsHolder.constructMetadataAdvance(PersistenceUnitsHolder.java:84)
	parsing io.quarkus.hibernate.orm.runtime.PersistenceUnitsHolder.initializeJpa(PersistenceUnitsHolder.java:47)
	parsing io.quarkus.hibernate.orm.runtime.HibernateOrmRecorder$4.created(HibernateOrmRecorder.java:75)
	parsing io.quarkus.arc.runtime.ArcRecorder.initBeanContainer(ArcRecorder.java:101)
	parsing io.quarkus.deployment.steps.ArcProcessor$generateResources221.deploy_0(ArcProcessor$generateResources221.zig:454)
	parsing io.quarkus.deployment.steps.ArcProcessor$generateResources221.deploy(ArcProcessor$generateResources221.zig:36)
	parsing io.quarkus.runner.ApplicationImpl.<clinit>(ApplicationImpl.zig:440)

	at com.oracle.graal.pointsto.util.AnalysisError.parsingError(AnalysisError.java:138)
	at com.oracle.graal.pointsto.flow.MethodTypeFlow.doParse(MethodTypeFlow.java:323)
	at com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureParsed(MethodTypeFlow.java:300)
	at com.oracle.graal.pointsto.flow.MethodTypeFlow.addContext(MethodTypeFlow.java:107)
	at com.oracle.graal.pointsto.flow.StaticInvokeTypeFlow.update(InvokeTypeFlow.java:346)
	at com.oracle.graal.pointsto.BigBang$2.run(BigBang.java:511)
	at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$execute$0(CompletionExecutor.java:171)
	at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
	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:177)
Caused by: org.graalvm.compiler.java.BytecodeParser$BytecodeParserError: java.util.ConcurrentModificationException
	at parsing com.mysql.cj.jdbc.ha.ReplicationConnectionProxy.createProxyInstance(ReplicationConnectionProxy.java:85)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.throwParserError(BytecodeParser.java:2475)
	at com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.throwParserError(SharedGraphBuilderPhase.java:93)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3291)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBlock(BytecodeParser.java:3093)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.build(BytecodeParser.java:977)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.buildRootMethod(BytecodeParser.java:871)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.GraphBuilderPhase$Instance.run(GraphBuilderPhase.java:84)
	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:197)
	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:221)
	at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:340)
	at com.oracle.graal.pointsto.flow.MethodTypeFlow.doParse(MethodTypeFlow.java:310)
	... 11 more
Caused by: java.util.ConcurrentModificationException
	at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1134)
	at com.oracle.svm.reflect.proxy.DynamicProxySupport.addProxyClass(DynamicProxySupport.java:94)
	at com.oracle.svm.hosted.snippets.SubstrateGraphBuilderPlugins.interceptProxyInterfaces(SubstrateGraphBuilderPlugins.java:246)
	at com.oracle.svm.hosted.snippets.SubstrateGraphBuilderPlugins.access$000(SubstrateGraphBuilderPlugins.java:149)
	at com.oracle.svm.hosted.snippets.SubstrateGraphBuilderPlugins$6.apply(SubstrateGraphBuilderPlugins.java:230)
	at jdk.internal.vm.compiler/org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin.execute(InvocationPlugin.java:217)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.tryInvocationPlugin(BytecodeParser.java:2097)
	at com.oracle.svm.hosted.phases.AnalysisGraphBuilderPhase$AnalysisBytecodeParser.tryInvocationPlugin(AnalysisGraphBuilderPhase.java:67)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.appendInvoke(BytecodeParser.java:1806)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genInvokeStatic(BytecodeParser.java:1571)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genInvokeStatic(BytecodeParser.java:1551)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBytecode(BytecodeParser.java:5170)
	at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3286)
	... 22 more
Error: Image build request failed with exit status 1

To Reproduce
Steps to reproduce the behavior from the master branch:

  1. (Optional) Set the JAVA_HOME environment variable to a JDK 11 installation directory (OpenJDK 11 or GraalVM 19.3.0 JDK 11 edition). Add the JDK 11 bin directory to the path.
  2. (Optional) Run ./mvnw clean install -Dmaven.test.skip=true to build all the Quarkus sources with the JDK 11.
  3. Run ./mvnw clean install --projects :quarkus-integration-test-jpa-mysql -Dquarkus.native.container-build=true -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:19.3.0-java11.
@gwenneg gwenneg added kind/bug Something isn't working env/graalvm-java11 Relating to using GraalVM native image generation on Java 11 labels Dec 8, 2019
@jaikiran
Copy link
Member

jaikiran commented Dec 8, 2019

Caused by: java.util.ConcurrentModificationException
	at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1134)
	at com.oracle.svm.reflect.proxy.DynamicProxySupport.addProxyClass(DynamicProxySupport.java:94)

Relates to oracle/graal#1927

@gwenneg
Copy link
Member Author

gwenneg commented Dec 12, 2019

I'm closing this one as it is a duplicate of #6018 (same root cause).

@gwenneg gwenneg closed this as completed Dec 12, 2019
@gsmet gsmet added the triage/duplicate This issue or pull request already exists label Dec 13, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
env/graalvm-java11 Relating to using GraalVM native image generation on Java 11 kind/bug Something isn't working triage/duplicate This issue or pull request already exists
Projects
None yet
Development

No branches or pull requests

3 participants