Skip to content

Fixed graal VM OOM under arm64.#11698

Draft
AlexeyKuznetsov-DD wants to merge 6 commits into
masterfrom
alexeyk/fixed-graalvm-arm64-ci-build
Draft

Fixed graal VM OOM under arm64.#11698
AlexeyKuznetsov-DD wants to merge 6 commits into
masterfrom
alexeyk/fixed-graalvm-arm64-ci-build

Conversation

@AlexeyKuznetsov-DD

Copy link
Copy Markdown
Contributor

What Does This Do

Caps the quarkus-native smoke test's native-image builder heap by adding quarkus.native.native-image-xmx=4g to its application.properties, mirroring the spring-boot-3.0-native build's existing -Xmx4096M.

Motivation

test_smoke_graalvm_arm64 (graalvm21/graalvm25) was failing with exit code 137 — OOMKilled. The job builds the spring-boot-3.0-native and quarkus-native images concurrently in one 16 GiB container:

  • Spring caps its builder at -Xmx4096M (~3.82 GB).
  • Quarkus was uncapped, so native-image auto-sized to 75.6% of system memory (~12.98 GB).

Combined (~17 GB) overshoots the 16 GiB limit. On amd64 (22 builder threads) the Serial GC reclaims in time and it survives; on arm64 the container sees 52 CPUs → 32 builder threads, which allocate faster than GC reclaims → OOM kill. Capping quarkus at 4g keeps the two concurrent builds at ~8 GB total, well under the limit on any arch.

Additional Notes

  • Build-time/CI-only change — no production code touched.
  • Set in application.properties rather than build.gradle so it applies unconditionally (the gradle-side additional-build-args are only added when agentJar is present).

@AlexeyKuznetsov-DD AlexeyKuznetsov-DD self-assigned this Jun 22, 2026
@AlexeyKuznetsov-DD AlexeyKuznetsov-DD added type: enhancement Enhancements and improvements tag: no release notes Changes to exclude from release notes labels Jun 22, 2026
@datadog-official

datadog-official Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Pipelines

Fix all issues with BitsAI

⚠️ Warnings

🚦 2 Pipeline jobs failed

DataDog/apm-reliability/dd-trace-java | build_tests: [:instrumentationTest, inst]   View in Datadog   GitLab

DataDog/apm-reliability/dd-trace-java | jetty-app.amd64.DOC: [public.ecr.aws/lts/ubuntu:22.04, linux/amd64, 17.0.15-zulu]   View in Datadog   GitLab

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: cae5599 | Docs | Datadog PR Page | Give us feedback!

@dd-octo-sts

dd-octo-sts Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

🟢 Java Benchmark SLOs — All performance SLOs passed

Suite Status
Startup 🟢 pass

SLO thresholds are defined here based on automatically generated metrics. A warning is raised when results are within 5% of the threshold.

PR vs. master results
Scenario Candidate master Δ (95% CI of mean)
startup:insecure-bank:iast:Agent 13.95 s 13.95 s [-0.6%; +0.8%] (no difference)
startup:insecure-bank:tracing:Agent 12.96 s 12.93 s [-0.6%; +1.0%] (no difference)
startup:petclinic:appsec:Agent 16.79 s 16.63 s [-0.1%; +2.1%] (no difference)
startup:petclinic:iast:Agent 16.28 s 16.83 s [-7.5%; +0.9%] (no difference)
startup:petclinic:profiling:Agent 16.73 s 16.41 s [-2.4%; +6.3%] (no difference)
startup:petclinic:sca:Agent 16.84 s 16.29 s [-0.9%; +7.7%] (no difference)
startup:petclinic:tracing:Agent 15.98 s 15.71 s [-2.5%; +6.0%] (no difference)

Commit: cae5599e · CI Pipeline · Benchmarking Platform UI


Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion.

@AlexeyKuznetsov-DD AlexeyKuznetsov-DD changed the title Cap quarkus-native native-image builder heap to fix arm64 OOM. Fixed graal VM OOM under arm64. Jun 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tag: no release notes Changes to exclude from release notes type: enhancement Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant