Skip to content

Conversation

@jerboaa
Copy link
Contributor

@jerboaa jerboaa commented Dec 5, 2025

The graal master branch made complete reflection types default. See:
oracle/graal#12521

The impact of it has been assessed in this issue:
oracle/graal#7753

By unconditionally enabling complete reflection types we enable quarkus testing on graal master. The impact for quarkus seems to be similar (or smaller, see attached charts) as reported in the upstream issue.

The graal master branch made complete reflection types
default. See:
oracle/graal#12521

The impact of it has been assessed in this issue:
oracle/graal#7753

By unconditionally enabling complete reflection types we enable quarkus
testing on graal master. The impact for quarkus seems to be similar as
reported in the upstream issue.

Closes: quarkusio#51271
Closes: quarkusio#51392
Closes: quarkusio#51393
@quarkus-bot
Copy link

quarkus-bot bot commented Dec 5, 2025

/cc @Karm (awt), @galderz (awt)

@jerboaa
Copy link
Contributor Author

jerboaa commented Dec 5, 2025

In my measurements enabling this unconditionally has about ~0.1 to 0.5% change in image size for the affected images smallrye-config, opentelemetry and awt. This is pretty much in the noise level. Interestingly the image sizes differ significantly between a Mandrel builder in version 23.1.9.0-Final (currently the default) to a 25.0.1.0-Final Mandrel builder, but that is a different matter (unrelated to this patch).

Testing:

  • awt, smallrye-config, opentelemetry native integration test with Mandrel 23.1.9.0-Final
  • awt, smallrye-config, opentelemetry native integration test with Mandrel 25.0.1.0-Final
  • awt, smallrye-config, opentelemetry native integration test with a GraalVM CE build from upstream graal/master branch (which fails prior to this patch).

@jerboaa
Copy link
Contributor Author

jerboaa commented Dec 5, 2025

Mandrel 23.1.9.0-Final before (false) and after (true)

mandrel_23 1 9 0-Final_before_after

Mandrel 25.0.1.0-Final before (false) and after (true)

mandrel_25 0 1 0-Final_before_after

Blue bars are with this patch, green bars without (baseline). Hardly any difference compared to the baseline. Sizes are byte values.

Seems like some image sizes shrink when a newer native builder is being used. E.g. smallrye-config goes from ~101MB to ~78MB.

@quarkus-bot
Copy link

quarkus-bot bot commented Dec 5, 2025

Status for workflow Quarkus CI

This is the status report for running Quarkus CI on commit 9073faa.

✅ The latest workflow run for the pull request has completed successfully.

It should be safe to merge provided you have a look at the other checks in the summary.

You can consult the Develocity build scans.


Flaky tests - Develocity

⚙️ MicroProfile TCKs Tests

📦 tcks/microprofile-lra

org.eclipse.microprofile.lra.tck.TckRecoveryTests.testCancelWhenParticipantIsUnavailable - History

  • Expecting the metric Compensated callback was called Expected: a value equal to or greater than <1> but: <0> was less than <1> - java.lang.AssertionError
java.lang.AssertionError: 
Expecting the metric Compensated callback was called
Expected: a value equal to or greater than <1>
     but: <0> was less than <1>
	at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
	at org.eclipse.microprofile.lra.tck.TckRecoveryTests.assertMetricCallbackCalled(TckRecoveryTests.java:210)
	at org.eclipse.microprofile.lra.tck.TckRecoveryTests.testCancelWhenParticipantIsUnavailable(TckRecoveryTests.java:195)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

@geoand
Copy link
Contributor

geoand commented Dec 6, 2025

cc @zakkak

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