test: enable compact object headers across test JVMs - #20271
test: enable compact object headers across test JVMs#20271FrankChen021 wants to merge 5 commits into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The PR description/goal isn’t fully met because the processing module’s benchmark profile still overrides argLine without the compact headers flag, and the Dockerfile streaming step should use pipefail for reliability.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR enables -XX:+UseCompactObjectHeaders across Druid’s test execution paths to surface regressions under JDK 25 compact object headers, including Maven test JVMs and the Docker distribution image used by CI docker-tests.
Changes:
- Add
-XX:+UseCompactObjectHeadersto the parent SurefireargLineand theparallel-testprofile override. - Add the flag to the embedded Docker-test Failsafe
argLine. - Amend the docker-tests workflow build to append
ENV JAVA_TOOL_OPTIONS="-XX:+UseCompactObjectHeaders"into the streamed Dockerfile used for the test image build.
File summaries
| File | Description |
|---|---|
pom.xml |
Enables compact object headers for Maven Surefire test JVMs (default + parallel-test override). |
embedded-tests/pom.xml |
Enables compact object headers for embedded Docker-test Failsafe JVMs. |
.github/workflows/docker-tests.yml |
Injects JAVA_TOOL_OPTIONS into the test distribution image at build time for containerized JVMs. |
Review details
- Files reviewed: 3/3 changed files
- Comments generated: 2
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
FrankChen021
left a comment
There was a problem hiding this comment.
I have reviewed the code for correctness, edge cases, concurrency, and integration risks; no issues found.
Reviewed 3 of 3 changed files.
This is an automated review by Codex GPT-5.6-Luna(max)
Description
Run Druid tests with
-XX:+UseCompactObjectHeadersto detect regressions under JDK 25 compact object headers before changing runtime defaults.parallel-testprofile that overrides test JVM arguments.JAVA_TOOL_OPTIONSin the CI test image so containerized Druid services and task JVMs, including Kubernetes peon pods, inherit the flag. The Build the Docker image step appends the test-only ENV instruction to the Dockerfile streamed into a single Docker build, before the image is saved and loaded for testing.Production launch scripts and distribution image defaults are unchanged. Historical Druid images used for backward-compatibility tests retain their existing JVM settings; they may use JDKs that do not support compact headers.
Validation
CircularListTestunit cases and twoSystemTableQueryTestembedded cases with JDK 25:argLinedefinitions.UseCompactObjectHeaders = truefrom the environment. Checked the revised single-build workflow shell syntax, Docker command arguments, and streamed Dockerfile contents.git diff --checkand workflow shell syntax checks passed.This PR has: