Skip to content

Stop gating nightly-perf on fixture_build_ms wall-clock noise - #355

Merged
dovvnloading merged 1 commit into
mainfrom
fix-nightly-perf-fixture-build-noise
Aug 25, 2026
Merged

dovvnloading merged 1 commit into
mainfrom
fix-nightly-perf-fixture-build-noise

Conversation

@dovvnloading

Copy link
Copy Markdown
Owner

Problem

nightly-perf.yml has failed 5 of its last 13 runs. All 5 traced to the same cause: fixture_build_ms (time to construct the synthetic test fixture itself via workload.build()) swinging wildly on the shared Windows runner — most recently (2026-08-24) +289% on large and +113% on stress in a single run, both well above MIN_TIMING_MS_FOR_PCT_CHECK so not caught by the existing noise filter. In that same run, every metric that's actually part of ADR-019's budgeted rows (payload_build_ms, serialize_ms, publish_total_ms, wire sizes) stayed within threshold.

fixture_build_ms isn't one of ADR-019 §2's budgeted rows — it measures test-harness overhead (building the synthetic scene fixture), not a real app code path, so gating on it was checking noise, not signal.

Change

backend/tests/perf/check_baseline.py: moved fixture_build_ms out of the gated TIMING_METRICS tuple into a new REPORTED_ONLY_METRICS tuple — still measured and printed every run for visibility, just no longer able to fail the job.

Test plan

  • Ran python -m backend.tests.perf.check_baseline locally — fixture_build_ms no longer appears among reported failures, payload_build_ms/serialize_ms/publish_total_ms continue to be gated normally.
  • Confirmed via gh run list --workflow=nightly-perf.yml that this was the sole failure cause in the 5 recent failing runs before making the change.

Note: that same local run also surfaced real, deterministic wire-size drift (full_snapshot_kib/single_node_payload_kib up 13–19% across all workloads vs. the 2026-08-11 baseline) — unrelated to this fix and out of scope here; flagged separately, not touched by this PR.

fixture_build_ms times constructing the synthetic test fixture itself, not
a real app code path, and isn't one of ADR-019's budgeted rows. It was the
sole cause of 5 of the last 13 nightly-perf.yml failures (most recently
2026-08-24: +289%/+113% swings on large/stress in one run) while every
genuinely budgeted metric in those same runs stayed within threshold.
Still measured and printed for visibility, just no longer gated.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@dovvnloading
dovvnloading merged commit 1eef4d5 into main Aug 25, 2026
4 checks passed
@dovvnloading
dovvnloading deleted the fix-nightly-perf-fixture-build-noise branch August 25, 2026 00:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant