Integration tests for GraalVM and its Mandrel distribution. Runs Quarkus, Helidon and Micronaut applications and small targeted reproducers. The focus is solely on native-image utility and compilation of Java applications into native executables.
Apache License 2.0
5
stars
3
forks
source link
New native-image output causes mandrel-integration-tests to fail on github actions #68
New native-image output causes mandrel-integration-tests to fail on github actions due to running under constraint memory which results in the following warning being thrown:
GC warning: 15.2s spent in 17 GCs during the last stage, taking up 50.65% of the time.
I see two ways to fixing this:
Pass -H:-BuildOutputGCWarnings to native-image when running in CI. Unfortunately it's not yet possible to dynamically pass additional arguments to native-image.
Add the warning to the whitelist.
Both ways would result in all GC warnings being hidden and rendering us unable to detect changes like going from 50% spent on GC to 70% being spent on GC. Ideally we would like to set a threshold that would allow us to detect such changes. The threshold would need to be set dynamically so that we could set it at a per machine/environment basis.
An automated fail of the build could be implemented by using the JSON output new in 22.3+ and do the calculations in the GHA script. Fail the build as needed.
New native-image output causes mandrel-integration-tests to fail on github actions due to running under constraint memory which results in the following warning being thrown:
I see two ways to fixing this:
-H:-BuildOutputGCWarnings
tonative-image
when running in CI. Unfortunately it's not yet possible to dynamically pass additional arguments tonative-image
.Both ways would result in all GC warnings being hidden and rendering us unable to detect changes like going from 50% spent on GC to 70% being spent on GC. Ideally we would like to set a threshold that would allow us to detect such changes. The threshold would need to be set dynamically so that we could set it at a per machine/environment basis.