Skip to content

Run the CBMC-latest perf suite serially to stop runner OOMs - #4742

Open
feliperodri wants to merge 1 commit into
model-checking:mainfrom
feliperodri:fix-cbmc-latest-perf-oom
Open

Run the CBMC-latest perf suite serially to stop runner OOMs#4742
feliperodri wants to merge 1 commit into
model-checking:mainfrom
feliperodri:fix-cbmc-latest-perf-oom

Conversation

@feliperodri

Copy link
Copy Markdown
Member

The perf job of the "Nightly: CBMC Latest" workflow has failed every day since 2026-07-25, and most days since February. The failure is not a CBMC incompatibility: the three regression jobs pass against the same CBMC HEAD, and the step annotations report exit code 143 (SIGTERM) or "the hosted runner lost communication with the server", 5-9 minutes into a step that takes ~27 minutes when it succeeds. Runs 1300 (green) and 1301 (red) ran the same Kani commit, and CBMC had no commits in that window, so nothing in either code base changed - the job simply stopped getting lucky on memory.

kani.yml runs the same scripts/kani-perf.sh with RUST_TEST_THREADS: 1 and a retry, but this workflow was never updated to match, so compiletest defaults to available_parallelism() and solves several heavy s2n-quic harnesses at once. Serialize the suite here too, allow one retry for genuine infra failures, and raise the job timeout above (step timeout) x (max_attempts) so a retry can land.

Note working-directory is not valid on a uses step, so the retried command changes directory itself.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.

The `perf` job of the "Nightly: CBMC Latest" workflow has failed every day
since 2026-07-25, and most days since February. The failure is not a CBMC
incompatibility: the three `regression` jobs pass against the same CBMC HEAD,
and the step annotations report `exit code 143` (SIGTERM) or "the hosted runner
lost communication with the server", 5-9 minutes into a step that takes ~27
minutes when it succeeds. Runs 1300 (green) and 1301 (red) ran the same Kani
commit, and CBMC had no commits in that window, so nothing in either code base
changed - the job simply stopped getting lucky on memory.

`kani.yml` runs the same `scripts/kani-perf.sh` with `RUST_TEST_THREADS: 1` and
a retry, but this workflow was never updated to match, so compiletest defaults
to `available_parallelism()` and solves several heavy s2n-quic harnesses at
once. Serialize the suite here too, allow one retry for genuine infra failures,
and raise the job timeout above (step timeout) x (max_attempts) so a retry can
land.

Note `working-directory` is not valid on a `uses` step, so the retried command
changes directory itself.
@feliperodri
feliperodri requested a review from a team as a code owner August 18, 2026 00:29
@feliperodri feliperodri added the [I] CI / Infrastructure Work done to CI, tests and infrastructure. label Aug 18, 2026
@feliperodri feliperodri added this to the Maintenance milestone Aug 18, 2026
@feliperodri
feliperodri enabled auto-merge August 18, 2026 14:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[I] CI / Infrastructure Work done to CI, tests and infrastructure.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant