Skip to content

Stop Windows CI failing on slow durable writes - #18

Merged
EquityBot merged 1 commit into
mainfrom
ryan/windows-ci-fast-temp
Oct 30, 2026
Merged

EquityBot merged 1 commit into
mainfrom
ryan/windows-ci-fast-temp

Conversation

@ryanduguid

Copy link
Copy Markdown
Collaborator

Summary

Windows CI failed a different test on most recent main runs, each time on a durable-write or retirement deadline. Tests now keep their temporary files on the runner's workspace drive, where durable writes are about 10 to 40 times faster, so they stop using up their budgets. No test budget or production deadline changes.

  cargo test step (Windows and Linux)
+   TEMP, TMP = runner.temp
  atomic_records_and_locks_work_beyond_max_path
-   one 210-character component (about 251 characters from a short temporary root)
+   two 210-character components (past MAX_PATH from any root)

Evidence

  • Before: f12ebe9 failed check (windows-latest) on two attempts with different tests, the second with Atomic publication deadline reached. a5ff8be also failed on a different Windows test.
    After: with temporary files on D:, 3 of 3 Windows jobs had no timing failure. Their only failure was the path test fixed here.
  • Durable-write probe, 3 runners: median 6.3 to 9.0 ms on C: and 0.22 to 0.56 ms on D:; p99 24 to 27 ms on C: and 0.7 to 1.3 ms on D:.
  • Windows test step: 919 to 1118 s, down from 1549 to 2020 s.
  • Local, Windows: the path test, cargo clippy --all-targets --locked -- -D warnings and cargo fmt --check pass.

Merge danger

Door: two-way. Blast radius: CI

Windows CI no longer exercises durable writes on the system drive. Local runs still do.

Unverified

  • Three clean runs are thin evidence for a flake, so the failure rate needs watching over later runs.
  • Production budgets on a system drive are unchanged and not re-tested here. The same deadlines fail closed, and this PC's C: had a 5.4 ms p99 on the probe.
  • One Linux failure on a5ff8be (Target disposition deadline reached, a 3 s test deadline) is not addressed.

Durable writes on the runner's system drive are slow enough to trip the
tests' 1 s and 5 s budgets, which failed a different test on most runs.
TEMP and TMP now point at the runner's temp directory on the workspace
drive. The MAX_PATH test assumed a long temporary root, so it now builds
a path past the limit whatever the root's length.
@sonarqubecloud

sonarqubecloud Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

@EquityBot
EquityBot merged commit 45d0664 into main Oct 30, 2026
11 checks passed
@EquityBot
EquityBot deleted the ryan/windows-ci-fast-temp branch October 30, 2026 17:12
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.

2 participants