ARC runner container "OOMKilled" in CI
The runner or dind container was terminated with OOMKilled: the job used more memory than the pod limit allowed, so the kernel killed it. The job usually ends with exit code 137.
What this error means
kubectl describe on the runner pod shows Last State Terminated with Reason OOMKilled, and the workflow step fails abruptly, often at a memory-heavy build or test.
Last State: Terminated
Reason: OOMKilled
Exit Code: 137Common causes
Memory limit lower than the job needs
The runner or dind container memory limit is below the peak the build or tests require, so the kernel OOM-kills it.
A memory-heavy step inside dind
Docker builds or large test suites in the dind container can spike memory past the sidecar limit.
How to fix it
Raise the memory limit in the runner template
- Confirm OOMKilled from kubectl describe on the pod.
- Raise the memory request and limit on the runner (and dind) container.
- Reinstall the scale set and re-run the job.
template:
spec:
containers:
- name: runner
resources:
requests: { memory: "2Gi" }
limits: { memory: "4Gi" }Reduce the job memory footprint
Lower build parallelism or split memory-heavy steps so the job fits under the limit.
How to prevent it
- Size runner and dind memory limits to the heaviest expected job.
- Monitor pod memory to spot jobs approaching the limit.
- Split or bound memory-heavy steps in the workflow.