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

Upgrade to GraalVM CE 20.3 #13954

Closed
zakkak opened this issue Dec 17, 2020 · 3 comments · Fixed by #13644
Closed

Upgrade to GraalVM CE 20.3 #13954

zakkak opened this issue Dec 17, 2020 · 3 comments · Fixed by #13644
Labels
Milestone

Comments

@zakkak
Copy link
Contributor

zakkak commented Dec 17, 2020

Description
GraalVM CE 20.3 was released in Nov 17 2020 and it would be nice to upgrade Quarkus to support this new release (which is also an LTS release).
However it looks like this is not possible and this issue aims to capture why.

Current Status
Despite efforts on resolving Quarkus issues with 20.3:

there is still an outstanding issues that we were not able to work around on the Quarkus side (see #13644).

Blocking issue
In GraalVM 20.2 there was an issue with color profiles that was (partially) fixed in 20.3 through oracle/graal@39d7ff7 by requiring ColorSpace and ICC_Profile classes to be reinitialized at runtime and by forbidding any instances of the said classes in the native image heap.

Unfortunately though to get an instance of ICC_Profile at runtime one typically invokes getInstance which ends up trying to load libawt at runtime
(see #13644 (comment)) something that is not supported in 20.3.

The whole issue seems to be fixed in master through oracle/graal@5d2997a, which is expected to land in GraalVM 21.0 on January.

Way forward
At this point in time it looks like upgrading to 20.3 is not possible without reverting oracle/graal@39d7ff7 or backporting of oracle/graal@5d2997a.

So unless one of the above gets done on the GraalVM side, moving to 20.3 will break tests and possibly use cases that used to embed ColorSpace and/or ICC_Profile instances in the native image heap.

@zakkak zakkak added the kind/enhancement New feature or request label Dec 17, 2020
@ghost ghost added the triage/needs-triage label Dec 17, 2020
@zakkak
Copy link
Contributor Author

zakkak commented Dec 17, 2020

Upstream Graal issue: oracle/graal#3077

@gastaldi
Copy link
Contributor

Will GraalVM 20.3 fix any other outstanding issue in Quarkus? Otherwise I think it's safer to wait for 21.0 instead.

@zakkak
Copy link
Contributor Author

zakkak commented Dec 22, 2020

Will GraalVM 20.3 fix any other outstanding issue in Quarkus? Otherwise I think it's safer to wait for 21.0 instead.

No. However, GraalVM 20.3 is an LTS release, so it appears to be a better target than 21.0 (at least for now).
According to oracle/graal#3077 the necessary changes to make Quarkus tests pass will be part of the 20.3.1 release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants