Skip to content

chore(ci): validate the mutation-test memory cap end to end - #666

Closed
JeroenSoeters wants to merge 2 commits into
mainfrom
ci-validate/mutation-oom-cap
Closed

chore(ci): validate the mutation-test memory cap end to end#666
JeroenSoeters wants to merge 2 commits into
mainfrom
ci-validate/mutation-oom-cap

Conversation

@JeroenSoeters

Copy link
Copy Markdown
Collaborator

Summary

Draft validation PR for #665, not for merging. It carries the workflow change from that branch plus a comment-only edit to internal/cli/status, the package whose padding-loop negation mutant reproducibly OOMs the runner today. Because the check runs against the merge ref, the mutation-test-pr run here executes under the new memory cap while mutating exactly the code that kills the current setup. A green mutation check here is the end-to-end proof; the PR gets closed after.

… runner

A mutant that negates a loop bound turns a bounded padding loop into one
that allocates without bound. The test process exhausts the runner VM's
memory within seconds, well before gremlins' per-mutant timeout, and the
VM is torn down mid-run: gremlins takes the shutdown signal, exits 0 and
writes no report, and the check reports the package as producing no
usable result. The nightly full run dies the same way every night.

Running the mutation step inside a memory-capped cgroup with swap denied
turns that failure into the right one: the kernel OOM killer takes out
the runaway test process, gremlins records the mutant as killed, and the
run completes with a report. Reproduced and verified locally: mutating
internal/cli/status uncapped OOMs the machine at the padding-loop
negation; capped, the same run completes with that mutant killed.
@JeroenSoeters

Copy link
Copy Markdown
Collaborator Author

Validation complete: the mutation-test check ran under the memory cap against internal/cli/status, the package whose loop-bound negation mutant kills the runner today, and completed green in 2m03s with that mutant recorded as KILLED (identical scores to the local capped run). Closing as intended; the fix itself is #665.

@JeroenSoeters
JeroenSoeters deleted the ci-validate/mutation-oom-cap branch August 21, 2026 19:40
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