Test JDK 27 as a non-default JVM#11841
Conversation
74b9d47 to
6082aa7
Compare
This comment has been minimized.
This comment has been minimized.
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
5ff3b4a to
2d17441
Compare
Debugger benchmarksParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 10 metrics, 5 unstable metrics. See unchanged results
Request duration reports for reportsgantt
title reports - request duration [CI 0.99] : candidate=None, baseline=None
dateFormat X
axisFormat %s
section baseline
noprobe (333.448 µs) : 308, 359
. : milestone, 333,
basic (296.962 µs) : 290, 304
. : milestone, 297,
loop (8.989 ms) : 8984, 8994
. : milestone, 8989,
section candidate
noprobe (336.151 µs) : 305, 368
. : milestone, 336,
basic (297.074 µs) : 290, 304
. : milestone, 297,
loop (8.982 ms) : 8976, 8987
. : milestone, 8982,
|
|
/merge -f --reason "Unblock master" --commit-message "Test JDK 27 as a non-default JVM" |
|
View all feedbacks in Devflow UI.
The expected merge time in
Warning This change was merged without running any pre merge CI checks Reason: "Unblock master" |
b767c68
into
master
There was a problem hiding this comment.
Missing global DEFAULT_TEST_JVMS update for JDK 27
Inconsistent test execution across CI matrix: amd64 test jobs will skip Java 27 on PR validation unless NON_DEFAULT_JVMS is explicitly set, while arm64 runs it by default. This defeats the stated goal of 'preparing to support JDK 27' — if tests don't run on PRs, integration issues won't be caught before master.
Assertion details
- Input: DEFAULT_TEST_JVMS variable at line 60 controls which JVMs run tests by default via CI rules: 'if: $testJvm =~ $DEFAULT_TEST_JVMS'. When Java 27 is added to .test_matrix (line 103), test jobs inheriting from .test_job without an explicit override will use the global DEFAULT_TEST_JVMS regex.
- Expected:
Java 27 tests should run with consistent default treatment across all test jobs. The global DEFAULT_TEST_JVMS should either include 27 (matching the matrix), or all jobs using .test_matrix should explicitly override it. - Actual:
Global DEFAULT_TEST_JVMS at line 60 is /^(8|11|17|21|25|tip)$/ (no 27). When a job runs with testJvm=27, the CI rule 'if: $testJvm =~ $DEFAULT_TEST_JVMS' evaluates to false, causing the job to not run (or only run on master/mq branches). Individual overrides exist for .test_job_arm64 (line 748), muzzle-dep-report, and test_debugger, but base .test_job jobs without overrides inherit the stale global regex.
Was this helpful? React 👍 or 👎
🤖 Datadog Autotest · What is Autotest? · Any feedback? Reach out in #autotest
There was a problem hiding this comment.
The reason we exclude it in DEFAULT_JVMs is to avoid extra CI running for PRs, though JDK 27 EA is still run for all tests on MQ and master pipelines. It's fine to have the JDK 27 EA image run extra, i.e. on PRs, especially for smaller test jobs such arm64 and debugger below.
There was a problem hiding this comment.
This PR adds JDK 27 EA testing support but has a critical inconsistency: the global DEFAULT_TEST_JVMS variable (line 60) was not updated to include "27", causing amd64 tests to skip Java 27 on PRs while arm64 tests run it by default. Individual jobs (muzzle-dep-report, test_debugger, .test_job_arm64) were updated correctly, but the shared root variable controlling all .test_job rules was missed.
🤖 Datadog Autotest · Commit 847496f · What is Autotest? · Any feedback? Reach out in #autotest
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 847496ff4f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
What Does This Do
Run EA JDK 27 as a non-default JVM for the main CI test-suite, for arm64 tests, and for debugger tests. Skip all tests that fail on 27 for now.
Motivation
Start preparing to support JDK 27 which GAs mid-September 2026.
Additional Notes
Non-default JVM GitLab pipeline run that includes JDK 27 tests: https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-java/-/pipelines/123389323
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issue/merge. You can also:/merge --commit-message "..."/merge -c/merge -f --reason "reason"; please use this judiciously, as some checks do not run at the PR-level (note: the PR still needs to be mergeable, this will only skip the pre-merge build)Jira ticket: [PROJ-IDENT]