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

[GR-54934] Increase in methods being accessed reflectively starting with GraalVM for JDK 23+26 #9147

Closed
zakkak opened this issue Jun 19, 2024 · 6 comments · Fixed by #9184
Closed

Comments

@zakkak
Copy link
Collaborator

zakkak commented Jun 19, 2024

Describe the issue
Starting with JDK 23+26 we see a lot of java.lang.BootstrapMethodError: java.lang.NoSuchMethodError in Quarkus tests, see https://github.com/oracle/graal/actions/runs/9558273459

The issue seems related to https://bugs.openjdk.org/browse/JDK-8229959.

The naive approach seems to be to register all methods of dynamically proxied classes for reflection, but I wonder if there is anything we could do on the GraalVM side to handle this since I expect many users/frameworks to be affected.

cc @vjovanov @fniephaus

Steps to reproduce the issue

  1. Grab the latest GraalVM CE dev build from release https://github.com/graalvm/graalvm-ce-dev-builds/releases
  2. Extract it and set GRAALVM_HOME to point to the extracted directory
  3. git clone https://github.com/quarkusio/quarkus.git
  4. cd quarkus
  5. ./mvnw -Dquickly (that takes some time... might want to use -T4 or similar if you have multiple cores)
  6. ./mvnw -Dnative -pl integration-tests/spring-web -Dnative.surefire.skip -Dformat.skip -Dno-descriptor-tests clean verify -Dquarkus.native.container-build=false -Dtest-containers -Dstart-containers

Describe GraalVM and your environment:

  • GraalVM version: master
  • JDK major version: 23 manifests in 24 as well
  • OS: Fedora 40
  • Architecture: [e.g.: AMD64]

More details

First reported in Quarkus quarkusio/quarkus#41283

@fernando-valdez
Copy link
Member

Hi @zakkak Can you please confirm if this issue happens on Oracle GraalVM (instead of the CE edition) ?

@christianwimmer
Copy link

Thanks for the report, I'll have a look.

@fniephaus fniephaus changed the title Increase in methods being accessed reflectively starting with GraalVM for JDK 23+26 [GR-54934] Increase in methods being accessed reflectively starting with GraalVM for JDK 23+26 Jun 25, 2024
@zakkak
Copy link
Collaborator Author

zakkak commented Jun 27, 2024

Thanks for the quick fix @christianwimmer, I will check our CI tomorrow and report back.

Hi @zakkak Can you please confirm if this issue happens on Oracle GraalVM (instead of the CE edition) ?

FTR I only tested this with the CE edition.

@zakkak
Copy link
Collaborator Author

zakkak commented Jul 1, 2024

I confirm this resolves the issue. Thanks again.

@gilles-duboscq @ezzarghili the fix (#9184) should be backported to 24.1 as well. Shall I open a backport PR for it?

@christianwimmer
Copy link

the fix (#9184) should be backported to 24.1 as well.

I already have the backporting PR ready for merging, it will go in as soon as the release branch is ready for fixes.

@zakkak
Copy link
Collaborator Author

zakkak commented Jul 1, 2024

it will go in as soon as the release branch is ready for fixes.

Hi Christian, could you provide some more details on that part?
What's currently preventing you (the GraalVM team) from merging fixes on the release branch?

We occasionally find ourselves backporting things on our mandrel fork before upstream (e.g. graalvm#757) just to be able to test things in a timely manner. We later drop our backport in favor of the upstream one but we believe it would be better if we didn't have to do it this way.

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

Successfully merging a pull request may close this issue.

4 participants