Skip to content

fix(reliability): stop the reliability CI jobs from failing on every run - #697

Merged
jbachorik merged 7 commits into
mainfrom
fix/realiability
Jul 29, 2026
Merged

fix(reliability): stop the reliability CI jobs from failing on every run#697
jbachorik merged 7 commits into
mainfrom
fix/realiability

Conversation

@jbachorik

@jbachorik jbachorik commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator

What does this PR do?:
Fixes several independent bugs that were making the reliability pipeline (memory_trend_check.sh, jit_stability_check.sh) fail on every run:

  • Removes a stale, empty pom.xml at the repo root (leftover from an old async-profiler publishing setup) that made every mvn invocation abort with "Non-readable POM ... input contained no data" before it could resolve anything.
  • Adds a deploy-artifact dependency to .reliability_job's needs: so the job can't start before the ddprof snapshot it depends on has actually been published.
  • Adds a fail-fast check (with retry + captured mvn output) after fetching the ddprof snapshot jar, so a fetch failure is reported clearly instead of unzip/find silently producing empty results downstream.
  • Fixes count_cpus() to fall back to cgroup v2's cpuset.cpus.effective (and to nproc if neither cgroup path exists) instead of only reading the cgroup v1 path.
  • Fixes the mem_watch.sh path, which pointed at a nonexistent relative location.
  • Replaces the self-referential RUNTIME: "${RUNTIME}" default (which only resolved via a pipeline-schedule variable) with an actual default value.

Motivation:
The reliability pipeline moved into this repo from java-profiler-build on 2026-04-03 and has been failing on every scheduled/manual run since, cascading through unzip/cgroup/library-load/env errors that all trace back to the issues above. See PROF-15567.

Additional Notes:
None.

How to test the change?:
Validated by re-running the reliability pipeline on this branch and confirming the ddprof snapshot resolves and the jobs progress past artifact setup. CI on this PR (and the scheduled reliability pipeline) is the real validation, since these scripts only run in that environment.

For Datadog employees:

  • This PR doesn't touch any of that.
  • JIRA: PROF-15567

Unsure? Have a question? Request a review!

…env bugs

Fail fast when the ddprof snapshot jar can't be fetched/unzipped instead of
silently launching Java with an empty debug.lib path. Also fixes cgroup v2
CPU counting, the wrong mem_watch.sh path, and the self-referential RUNTIME
CI variable. See PROF-15567.
.reliability_job only needed get-versions, so GitLab's DAG scheduling let
it race ahead of deploy-artifact and try to fetch the ddprof snapshot
before it was published. See PROF-15567.
…ty pom.xml

mvn aborted with "Non-readable POM ... input contained no data" every time
because it picked up the repo's stale, empty pom.xml before ever attempting
resolution. Same workaround already used in download-snapshot-artifacts.sh.
Leftover from an old async-profiler publishing setup; unreferenced, and its
presence at the repo root made plain `mvn` invocations fail outright.
Copilot AI review requested due to automatic review settings July 29, 2026 13:50
@jbachorik jbachorik added the AI label Jul 29, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@jbachorik
jbachorik marked this pull request as ready for review July 29, 2026 13:52
@jbachorik
jbachorik requested a review from a team as a code owner July 29, 2026 13:52

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8756ac7e10

ℹ️ 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".

timeout: 6h
variables:
RUNTIME: "${RUNTIME}"
# Default; a pipeline-schedule variable named RUNTIME overrides this.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Add the required Datadog copyright headers

This commit modifies .gitlab/reliability/.gitlab-ci.yml, jit_stability_check.sh, and memory_trend_check.sh, but none contains the required Datadog copyright notice; add a current-year notice to each modified file.

AGENTS.md reference: AGENTS.md:L372-L374

Useful? React with 👍 / 👎.

Comment thread .gitlab/reliability/.gitlab-ci.yml

@rkennke rkennke left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thank you!

@dd-octo-sts

dd-octo-sts Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

CI Test Results

Run: #30460342877 | Commit: fe9e9e3 | Duration: 24m 45s (longest job)

All 32 test jobs passed

Status Overview

JDK glibc-aarch64/debug glibc-amd64/debug musl-aarch64/debug musl-amd64/debug
8 - - -
8-ibm - - -
8-j9 - -
8-librca - -
8-orcl - - -
11 - - -
11-j9 - -
11-librca - -
17 - -
17-graal - -
17-j9 - -
17-librca - -
21 - -
21-graal - -
21-librca - -
25 - -
25-graal - -
25-librca - -

Legend: ✅ passed | ❌ failed | ⚪ skipped | 🚫 cancelled

Summary: Total: 32 | Passed: 32 | Failed: 0


Updated: 2026-07-29 15:15:46 UTC

deploy-artifact has when:never on release/* branches, but a scheduled
reliability pipeline on such a branch has no branch restriction and
would fail to build with a hard needs on a job that doesn't exist.
Copilot AI review requested due to automatic review settings July 29, 2026 14:19

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@dd-octo-sts

dd-octo-sts Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (commit 8756ac7)

Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/127720275 Commit: 8756ac7e101043de6a652e81e4c22c25127c5b92

✅ Within expected boundaries

No significant runtime deltas (all within run-to-run noise) and no internal-counter outliers.

Runtime details (per benchmark × JDK)
Benchmark JDK Latest Dev Δ (dev vs latest) Issues L/D
akka-uct 21 ✅ 10288 ms (21 iters) ✅ 10301 ms (21 iters) ≈ +0.1% (±11%) — / —
akka-uct 25 ✅ 8884 ms (24 iters) ✅ 8761 ms (24 iters) ≈ -1.4% (±10.2%) — / —
finagle-chirper 21 ✅ 5895 ms (33 iters) ✅ 5970 ms (33 iters) ≈ +1.3% (±25.7%) ⚠️ W:3 / ⚠️ W:3
finagle-chirper 25 ✅ 5336 ms (37 iters) ✅ 5361 ms (37 iters) ≈ +0.5% (±24.7%) ⚠️ W:3 / ⚠️ W:3
fj-kmeans 21 ✅ 2642 ms (72 iters) ✅ 2644 ms (72 iters) ≈ +0.1% (±2.5%) — / —
fj-kmeans 25 ✅ 2840 ms (66 iters) ✅ 2824 ms (66 iters) ≈ -0.6% (±2.6%) — / —
future-genetic 21 ✅ 2056 ms (90 iters) ✅ 2089 ms (89 iters) ≈ +1.6% (±2.7%) — / —
future-genetic 25 ✅ 2103 ms (88 iters) ✅ 2063 ms (90 iters) ≈ -1.9% (±2.5%) — / —
naive-bayes 21 ✅ 1273 ms (135 iters) ✅ 1276 ms (134 iters) ≈ +0.2% (±32.3%) — / —
naive-bayes 25 ✅ 988 ms (173 iters) ✅ 1015 ms (168 iters) ≈ +2.7% (±32.5%) — / —
reactors 21 ✅ 16305 ms (15 iters) ✅ 16207 ms (15 iters) ≈ -0.6% (±7.8%) — / —
reactors 25 ✅ 18654 ms (15 iters) ✅ 18729 ms (15 iters) ≈ +0.4% (±5.4%) — / —
Internal counter details (ddprof)

ddprof internal counters, latest / dev (✅ = 0, · = unavailable):

Benchmark JDK Dropped rec Dropped jvmti Dropped trace Skipped WC AGCT fail Unwind fail
akka-uct 21 ✅ / ✅ ✅ / ✅ 4 / 3 2057 / 2005 ✅ / ✅ ✅ / ✅
akka-uct 25 ✅ / ✅ ✅ / ✅ 3 / ✅ 2416 / 2237 ✅ / ✅ ✅ / ✅
finagle-chirper 21 ✅ / ✅ ✅ / ✅ 2 / 6 8222 / 8092 ✅ / ✅ ✅ / ✅
finagle-chirper 25 ✅ / ✅ ✅ / ✅ 1 / 1 8498 / 8676 ✅ / ✅ ✅ / ✅
fj-kmeans 21 ✅ / ✅ ✅ / ✅ 1 / 1 1283 / 1287 ✅ / ✅ ✅ / ✅
fj-kmeans 25 ✅ / ✅ ✅ / ✅ 2 / ✅ 1285 / 1265 ✅ / ✅ ✅ / ✅
future-genetic 21 ✅ / ✅ ✅ / ✅ 2 / ✅ 2883 / 2985 ✅ / ✅ ✅ / ✅
future-genetic 25 ✅ / ✅ ✅ / ✅ 2 / 1 2864 / 2982 ✅ / ✅ ✅ / ✅
naive-bayes 21 ✅ / ✅ ✅ / ✅ 6 / 4 3544 / 3511 ✅ / ✅ ✅ / ✅
naive-bayes 25 ✅ / ✅ ✅ / ✅ 3 / 8 3526 / 3479 ✅ / ✅ ✅ / ✅
reactors 21 ✅ / ✅ ✅ / ✅ ✅ / 2 1705 / 1618 ✅ / ✅ ✅ / ✅
reactors 25 ✅ / ✅ ✅ / ✅ 1 / 1 1861 / 1889 ✅ / ✅ ✅ / ✅

@dd-octo-sts

dd-octo-sts Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Reliability & Chaos Results

All reliability & chaos checks passed Pipeline: https://gitlab.ddbuild.io/DataDog/java-profiler/-/pipelines/127732237

@dd-octo-sts

dd-octo-sts Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (commit 6c41ccd)

Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/127732630 Commit: 6c41ccd6f710b6e101546aed111e3779086187c0

✅ Within expected boundaries

No significant runtime deltas (all within run-to-run noise) and no internal-counter outliers.

Runtime details (per benchmark × JDK)
Benchmark JDK Latest Dev Δ (dev vs latest) Issues L/D
akka-uct 21 ✅ 10317 ms (21 iters) ✅ 10295 ms (21 iters) ≈ -0.2% (±11.7%) — / —
akka-uct 25 ✅ 8826 ms (24 iters) ✅ 8766 ms (24 iters) ≈ -0.7% (±9.8%) — / —
finagle-chirper 21 ✅ 5921 ms (33 iters) ✅ 5994 ms (33 iters) ≈ +1.2% (±25.6%) ⚠️ W:4 / ⚠️ W:3
finagle-chirper 25 ✅ 5452 ms (36 iters) ✅ 5504 ms (36 iters) ≈ +1% (±25%) ⚠️ W:3 / ⚠️ W:3
fj-kmeans 21 ✅ 2776 ms (67 iters) ✅ 2772 ms (67 iters) ≈ -0.1% (±2.7%) — / —
fj-kmeans 25 ✅ 2831 ms (66 iters) ✅ 2830 ms (66 iters) ≈ -0% (±2.6%) — / —
future-genetic 21 ✅ 2143 ms (87 iters) ✅ 2111 ms (88 iters) ≈ -1.5% (±2.6%) — / —
future-genetic 25 ✅ 2072 ms (89 iters) ✅ 2070 ms (89 iters) ≈ -0.1% (±2.6%) — / —
naive-bayes 21 ✅ 1297 ms (132 iters) ✅ 1281 ms (133 iters) ≈ -1.2% (±32.3%) — / —
naive-bayes 25 ✅ 1007 ms (170 iters) ✅ 1012 ms (169 iters) ≈ +0.5% (±31.5%) — / —
reactors 21 ✅ 15971 ms (15 iters) ✅ 15794 ms (16 iters) ≈ -1.1% (±7%) — / —
reactors 25 ✅ 18453 ms (15 iters) ✅ 18028 ms (15 iters) ≈ -2.3% (±4.8%) — / —
Internal counter details (ddprof)

ddprof internal counters, latest / dev (✅ = 0, · = unavailable):

Benchmark JDK Dropped rec Dropped jvmti Dropped trace Skipped WC AGCT fail Unwind fail
akka-uct 21 ✅ / ✅ ✅ / ✅ 1 / 2 1984 / 1991 ✅ / ✅ ✅ / ✅
akka-uct 25 ✅ / ✅ ✅ / ✅ ✅ / 2 2303 / 2271 ✅ / ✅ ✅ / ✅
finagle-chirper 21 ✅ / ✅ ✅ / ✅ 3 / 5 8168 / 8394 ✅ / ✅ ✅ / ✅
finagle-chirper 25 ✅ / ✅ ✅ / ✅ 4 / 1 8193 / 8273 ✅ / ✅ ✅ / ✅
fj-kmeans 21 ✅ / ✅ ✅ / ✅ 5 / 1 1245 / 1264 ✅ / ✅ ✅ / ✅
fj-kmeans 25 ✅ / ✅ ✅ / ✅ 4 / 2 1294 / 1286 ✅ / ✅ ✅ / ✅
future-genetic 21 ✅ / ✅ ✅ / ✅ 1 / 3 2952 / 3043 ✅ / ✅ ✅ / ✅
future-genetic 25 ✅ / ✅ ✅ / ✅ ✅ / 3 2898 / 2882 ✅ / ✅ ✅ / ✅
naive-bayes 21 ✅ / ✅ ✅ / ✅ 2 / 2 3497 / 3487 ✅ / ✅ ✅ / ✅
naive-bayes 25 ✅ / ✅ ✅ / ✅ 13 / 4 3511 / 3455 ✅ / ✅ ✅ / ✅
reactors 21 ✅ / ✅ ✅ / ✅ ✅ / ✅ 1509 / 1701 ✅ / ✅ ✅ / ✅
reactors 25 ✅ / ✅ ✅ / ✅ 1 / ✅ 1877 / 1850 ✅ / ✅ ✅ / ✅

@kaahos kaahos left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks good to me! thanks for the fix!

@jbachorik
jbachorik merged commit 5ad93ea into main Jul 29, 2026
228 of 229 checks passed
@jbachorik
jbachorik deleted the fix/realiability branch July 29, 2026 15:23
@github-actions github-actions Bot added this to the 1.49.0 milestone Jul 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants