Skip to content

ci(docs): record the -n 8 worker-count trial, which is worse on every leg - #412

Merged
wshallwshall merged 1 commit into
mainfrom
claude/ci-record-worker-count-trial
Aug 16, 2026
Merged

ci(docs): record the -n 8 worker-count trial, which is worse on every leg#412
wshallwshall merged 1 commit into
mainfrom
claude/ci-record-worker-count-trial

Conversation

@wshallwshall

Copy link
Copy Markdown
Collaborator

Comment-only change to ci.yml. No functional change -- the three pytest_workers matrix values are untouched.

Why record a negative result

The argument for raising the xdist worker count is genuinely tempting, and someone will reach for it again: this suite is process-spawn heavy, so a worker blocked waiting on a pwsh or git child is not holding a core, which reads as 4 workers under-subscribing a 4-vCPU runner.

Measured, it is wrong -- worse on every leg and red on two of three.

leg -n 4 baseline (n=2) -n 8 (n=1) delta -n 8 outcome
ubuntu-latest 630 / 633s 731s +16% red, 2 timing assertions
windows-2022 967 / 1004s 1067s +8% green
windows-2025 1084 / 1092s 1366s +25% red, 3 tests

The -n 4 baselines are two runs agreeing within 4 percent: PR #411 and its post-merge push to main.

The failures are the mechanism, not noise

They cluster on exactly the tests that measure elapsed time or bind real ports, which is what contention degrades first:

  • ubuntu lost test_outbound_batch.py's pacing floor and a super-linear-scaling ratio assertion.
  • windows-2025 lost connscale_smoke, multishard_smoke, and session_mail's claim-verdict test -- the three heaviest multi-process tests, the last being the slowest single test in the suite.

Raw data is cited in the comment (trial branch claude/ci-worker-count-trial at 2bb733915, run 31968796353) so it outlives the branch, which is being deleted.

… leg

Comment-only. No functional change -- the three matrix values are untouched.

Recorded so the next person does not spend a dispatch re-running it. The argument
for raising the worker count is genuinely tempting: this suite is process-spawn
heavy, so a worker blocked on a pwsh or git child is not holding a core, which
reads as 4 workers under-subscribing 4 vCPU. Measured, it is wrong.

  leg             -n 4 baseline (n=2)   -n 8 (n=1)   delta   outcome
  ubuntu-latest   630 / 633s            731s         +16%    RED
  windows-2022    967 / 1004s           1067s         +8%    green
  windows-2025    1084 / 1092s          1366s        +25%    RED

Slower everywhere and red on two of three. The failures are the mechanism rather
than noise: they are exactly the tests that measure elapsed time or bind real
ports, which is what contention degrades first.

Trial branch claude/ci-worker-count-trial at 2bb7339, run 31968796353, cited so
the raw data outlives the branch.
@wshallwshall
wshallwshall enabled auto-merge (squash) August 16, 2026 20:17
@wshallwshall
wshallwshall merged commit 7c9f338 into main Aug 16, 2026
36 of 37 checks passed
@wshallwshall
wshallwshall deleted the claude/ci-record-worker-count-trial branch August 16, 2026 20:36
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