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

Bump to GraalVM 21.2 #18932

Merged
merged 2 commits into from
Jul 30, 2021
Merged

Bump to GraalVM 21.2 #18932

merged 2 commits into from
Jul 30, 2021

Conversation

zakkak
Copy link
Contributor

@zakkak zakkak commented Jul 22, 2021

GraalVM builder images are ready, the Mandrel ones are to appear soon.

Note: there are is no Java16 release of GraalVM CE 21.2 yet, it's expected sometime next week.

@quarkus-bot quarkus-bot bot added area/core area/dependencies Pull requests that update a dependency file area/devtools Issues/PR related to maven, gradle, platform and cli tooling/plugins area/documentation area/infra-automation anything related to CI, bots, etc. that are used to automated our infrastructure labels Jul 22, 2021
Copy link
Member

@gsmet gsmet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool, thanks. And nice catch for using the attributes.

Copy link
Member

@gsmet gsmet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zakkak zakkak force-pushed the bump-to-graalvm-21.2 branch from 4a56e14 to 8fd302d Compare July 22, 2021 14:27
@zakkak
Copy link
Contributor Author

zakkak commented Jul 22, 2021

Ah wait, I think this should be upgraded too: https://github.com/quarkusio/quarkus/blob/main/core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/GraalVM.java#L19

Good catch, this was left out of date since 21.0!

@zakkak
Copy link
Contributor Author

zakkak commented Jul 22, 2021

Hmmmm Spring-Web is not happy

Error: Class initialization of javax.imageio.ImageTypeSpecifier failed. Use the option --initialize-at-run-time=javax.imageio.ImageTypeSpecifier to explicitly request delayed initialization of this class.
Detailed message:

com.oracle.svm.core.util.UserError$UserException: Class initialization of javax.imageio.ImageTypeSpecifier failed. Use the option --initialize-at-run-time=javax.imageio.ImageTypeSpecifier to explicitly request delayed initialization of this class.
Detailed message:

	at com.oracle.svm.core.util.UserError.abort(UserError.java:82)
	at com.oracle.svm.hosted.FallbackFeature.reportAsFallback(FallbackFeature.java:233)
	at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:764)
	at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:532)
	at com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:491)
	at com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:380)
	at com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:543)
	at com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:119)
	at com.oracle.svm.hosted.NativeImageGeneratorRunner$JDK9Plus.main(NativeImageGeneratorRunner.java:573)
Caused by: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Class initialization of javax.imageio.ImageTypeSpecifier failed. Use the option --initialize-at-run-time=javax.imageio.ImageTypeSpecifier to explicitly request delayed initialization of this class.
Detailed message:

	at com.oracle.graal.pointsto.constraints.UnsupportedFeatures.report(UnsupportedFeatures.java:126)
	at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:761)
	... 6 more
Caused by: java.lang.ExceptionInInitializerError
	at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
	at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1042)
	at jdk.unsupported/sun.misc.Unsafe.ensureClassInitialized(Unsafe.java:698)
	at jdk.internal.vm.compiler/org.graalvm.compiler.serviceprovider.GraalUnsafeAccess.ensureClassInitialized(GraalUnsafeAccess.java:77)
	at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.ensureClassInitialized(ConfigurableClassInitialization.java:178)
	at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass(ConfigurableClassInitialization.java:648)
	at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass(ConfigurableClassInitialization.java:131)
	at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.maybeInitializeHosted(ConfigurableClassInitialization.java:169)
	at com.oracle.svm.hosted.SVMHost.initializeType(SVMHost.java:277)
	at com.oracle.graal.pointsto.meta.AnalysisType.lambda$new$0(AnalysisType.java:235)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	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.awaitQuiescence(ForkJoinPool.java:2984)
	at com.oracle.graal.pointsto.util.CompletionExecutor.complete(CompletionExecutor.java:238)
	at com.oracle.graal.pointsto.BigBang.doTypeflow(BigBang.java:602)
	at com.oracle.graal.pointsto.BigBang.finish(BigBang.java:577)
	at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:707)
	... 6 more
Caused by: java.lang.NullPointerException
	at java.desktop/java.awt.color.ICC_Profile.intFromBigEndian(ICC_Profile.java:1763)
	at java.desktop/java.awt.color.ICC_Profile.getProfileClass(ICC_Profile.java:1157)
	at java.desktop/java.awt.color.ICC_ColorSpace.<init>(ICC_ColorSpace.java:114)
	at java.desktop/java.awt.color.ColorSpace.getInstance(ColorSpace.java:299)
	at java.desktop/javax.imageio.ImageTypeSpecifier.<clinit>(ImageTypeSpecifier.java:73)
	... 25 more

I wonder how it worked on the nightlies with 21.2-dev :/

I'll have a closer look

@quarkus-bot
Copy link

quarkus-bot bot commented Jul 22, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building 8fd302d

Status Name Step Test failures Logs Raw logs
Native Tests - Spring Build ⚠️ Check → Logs Raw logs

@zakkak
Copy link
Contributor Author

zakkak commented Jul 22, 2021

I can't reproduce locally:

[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] Running Quarkus native-image plugin on GraalVM 21.2.0 Java 11 CE (Java Version 11.0.12+6-jvmci-21.2-b08)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] podman run --env LANG=C --rm --user 1000:1000 --userns=keep-id -v /home/zakkak/code/quarkus/integration-tests/spring-web/target/quarkus-integration-test-spring-web-999-SNAPSHOT-native-image-source-jar:/project:z quay.io/quarkus/ubi-quarkus-native-image:21.2-java11 -J-Dsun.nio.ch.maxUpdateArraySize=100 -J-Djava.util.logging.manager=org.jboss.logmanager.LogManager -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=3 -J-Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true -J-Duser.language=en -J-Duser.country=IE -J-Dfile.encoding=UTF-8 -H:InitialCollectionPolicy=com.oracle.svm.core.genscavenge.CollectionPolicy\$BySpaceAndTime -H:+JNI -H:+AllowFoldMethods -jar quarkus-integration-test-spring-web-999-SNAPSHOT-runner.jar -H:FallbackThreshold=0 -H:+ReportExceptionStackTraces -H:-AddAllCharsets -H:EnableURLProtocols=http -H:NativeLinkerOption=-no-pie -H:-UseServiceLoaderFeature -H:+StackTrace -H:-ParseOnce quarkus-integration-test-spring-web-999-SNAPSHOT-runner
[quarkus-integration-test-spring-web-999-SNAPSHOT-runner:20]    classlist:   3,645.65 ms,  1.18 GB
[quarkus-integration-test-spring-web-999-SNAPSHOT-runner:20]        (cap):     620.15 ms,  1.18 GB
[quarkus-integration-test-spring-web-999-SNAPSHOT-runner:20]        setup:   2,261.87 ms,  1.18 GB
The bundle named: ContributorValidationMessages, has not been found. If the bundle is part of a module, verify the bundle name is a fully qualified class name. Otherwise verify the bundle path is accessible in the classpath.
The bundle named: ValidationMessages, has not been found. If the bundle is part of a module, verify the bundle name is a fully qualified class name. Otherwise verify the bundle path is accessible in the classpath.
The bundle named: messages, has not been found. If the bundle is part of a module, verify the bundle name is a fully qualified class name. Otherwise verify the bundle path is accessible in the classpath.
19:14:38,353 INFO  [org.hib.val.int.uti.Version] HV000001: Hibernate Validator 6.2.0.Final
19:14:55,125 INFO  [org.jbo.threads] JBoss Threads version 3.4.0.Final
[quarkus-integration-test-spring-web-999-SNAPSHOT-runner:20]     (clinit):     880.99 ms,  5.63 GB
[quarkus-integration-test-spring-web-999-SNAPSHOT-runner:20]   (typeflow):  32,496.36 ms,  5.63 GB
[quarkus-integration-test-spring-web-999-SNAPSHOT-runner:20]    (objects):  30,620.03 ms,  5.63 GB
[quarkus-integration-test-spring-web-999-SNAPSHOT-runner:20]   (features):   1,683.96 ms,  5.63 GB
[quarkus-integration-test-spring-web-999-SNAPSHOT-runner:20]     analysis:  68,336.75 ms,  5.63 GB
[quarkus-integration-test-spring-web-999-SNAPSHOT-runner:20]     universe:   2,416.04 ms,  5.63 GB
[quarkus-integration-test-spring-web-999-SNAPSHOT-runner:20]      (parse):   7,227.37 ms,  5.58 GB
[quarkus-integration-test-spring-web-999-SNAPSHOT-runner:20]     (inline):  10,333.93 ms,  6.57 GB
[quarkus-integration-test-spring-web-999-SNAPSHOT-runner:20]    (compile):  41,841.92 ms,  6.54 GB
[quarkus-integration-test-spring-web-999-SNAPSHOT-runner:20]      compile:  62,468.32 ms,  6.41 GB
[quarkus-integration-test-spring-web-999-SNAPSHOT-runner:20]        image:   6,297.25 ms,  6.41 GB
[quarkus-integration-test-spring-web-999-SNAPSHOT-runner:20]        write:     994.24 ms,  6.41 GB
[quarkus-integration-test-spring-web-999-SNAPSHOT-runner:20]      [total]: 146,889.55 ms,  6.41 GB

I am using the same branch "bump-to-graalvm-21.2".

@Sanne
Copy link
Member

Sanne commented Jul 29, 2021

Is anyone working on this? Would be great to be able to upgrade.

@geoand
Copy link
Contributor

geoand commented Jul 29, 2021

I can't reproduce this locally either. Running mvn clean verify -Dnative with GraalVM 21.2 the tests passed flawlessly

@Sanne
Copy link
Member

Sanne commented Jul 29, 2021

I can't reproduce this locally either. Running mvn clean verify -Dnative with GraalVM 21.2 the tests passed flawlessly

Interesting. I've trriggered a new CI build some ~3 hours ago, should be close to completion soon.

I'll check it locally as well.

@Sanne
Copy link
Member

Sanne commented Jul 29, 2021

Actually "Native Tests - Spring" already completed, and that's the one which previously failed.

@geoand
Copy link
Contributor

geoand commented Jul 29, 2021

That's great!

@Sanne
Copy link
Member

Sanne commented Jul 29, 2021

It worked for me locally as well. WDYT @gsmet , can we take the risk of introducing a flaky test?

I think we should try, as far as I understood from our earlier conversation it's even possible that this test is already flakey on the current VM version, issues with javax.imageio do kinda ring a bell.

@geoand
Copy link
Contributor

geoand commented Jul 29, 2021

Although it won't get to the root of the problem, we can always remove the XML part from this test... It's not terrible important to test anyway....

@Sanne
Copy link
Member

Sanne commented Jul 29, 2021

Although it won't get to the root of the problem, we can always remove the XML part from this test... It's not terrible important to test anyway....

But let's see if it ever fails again - and there's chances if this very rare that javax.imageio could fail on a different test.

@Sanne
Copy link
Member

Sanne commented Jul 30, 2021

all green.. I guess we should merge. Do we agree @geoand && @gsmet ?

@geoand
Copy link
Contributor

geoand commented Jul 30, 2021

You definitely have my vote

@gsmet
Copy link
Member

gsmet commented Jul 30, 2021

We can merge and see how it goes. I'm afraid there might be something non deterministic lurking but we will see.

@gsmet gsmet merged commit 233af79 into quarkusio:main Jul 30, 2021
@quarkus-bot quarkus-bot bot added this to the 2.2 - main milestone Jul 30, 2021
@gsmet gsmet removed this from the 2.2 - main milestone Aug 3, 2021
@gsmet gsmet added this to the 2.1.1.Final milestone Aug 3, 2021
@gsmet gsmet modified the milestones: 2.1.1.Final, 2.2 - main Aug 3, 2021
@gsmet
Copy link
Member

gsmet commented Aug 3, 2021

In the end, we cannot backport it: it causes issues with Camel JS DSL component and with the Google Cloud Services extension.

/cc @loicmathieu @ppalaga

@gsmet
Copy link
Member

gsmet commented Aug 3, 2021

Marking it for backport again so that we can see if we can consider it for the next backport run.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/core area/dependencies Pull requests that update a dependency file area/devtools Issues/PR related to maven, gradle, platform and cli tooling/plugins area/documentation area/infra-automation anything related to CI, bots, etc. that are used to automated our infrastructure
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants