Skip to content

test(ci): calibrate the container-build timeout to its CI-measured 95s (INV-CI-4) - #68

Merged
neosun100 merged 1 commit into
mainfrom
fix/calibrate-container-timeout
Aug 6, 2026
Merged

test(ci): calibrate the container-build timeout to its CI-measured 95s (INV-CI-4)#68
neosun100 merged 1 commit into
mainfrom
fix/calibrate-container-timeout

Conversation

@neosun100

Copy link
Copy Markdown
Contributor

The arm64 build+serve job added in #67 landed with a 20-minute timeout and no entry in _MEASURED_SECONDS, so INV-CI-4's 2×–40× band did not constrain it. Closing that immediately, while the measurement is fresh.

Measured in CI, on a native ubuntu-24.04-arm runner:

runner arch: aarch64        (native — no QEMU)
Docker version 28.0.4
7 passed in 44.64s          (zero skips — the gate really built)
job wall-clock: 95s

Locally, a cold build (Apple Silicon, docker builder prune -af first) is 112s.

20 min against 95s is 12.6× — looser than the ~3× used for the other jobs, deliberately, and the reason is now recorded beside the number: this job pulls a base image and installs the whole specialist stack, so its runtime is dominated by network I/O that a slow registry day can multiply. And unlike the other jobs, a timeout here means the image was never proven to build at all — the failure mode is "we learned nothing", not "we lost a few minutes".

Mutation-tested both directions:

mutation result
timeout → 1 min (0.6× of 95s — variance becomes a flake) CAUGHT
timeout → 120 min (decorative, near GitHub's 360 default) CAUGHT

Full suite: 4085 passed / 15 skipped. ruff clean.

…s (INV-CI-4)

The arm64 build+serve job (INV-CONTAINER-1) landed with a 20-minute timeout and no
entry in _MEASURED_SECONDS, so INV-CI-4's 2x-40x band did not constrain it.

Measured in CI on a NATIVE ubuntu-24.04-arm runner: 95s (`runner arch: aarch64`,
`7 passed in 44.64s` of pytest, zero skips). Locally a cold build is 112s.

20min against 95s is 12.6x — looser than the ~3x used elsewhere, deliberately and
now recorded why: this job pulls a base image and installs the whole specialist
stack, so its runtime is dominated by network I/O a slow registry day can
multiply, and unlike the other jobs a timeout here means the image was never
proven to build at all.

Mutation-tested both directions: 1min (0.6x, would flake) and 120min (decorative)
are each caught. Suite 4085 passed / 15 skipped.
@neosun100
neosun100 merged commit 639b74b into main Aug 6, 2026
14 checks passed
@neosun100
neosun100 deleted the fix/calibrate-container-timeout branch August 6, 2026 15:08
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