~ knotless Search/
↑↓ move↵ open⇧↵ all results

chadtmiller.com/knotless

git that lives in your Atmosphere account

knotless.dev
1 collaborator

knotless 0.13.0 Latest 2 packages, 1 image

1
10

Each run on the runner host has 10 GiB, and builds a crate for each 4

Merged
Merged chadtmiller.com asked to merge into main from chadtmiller.com/knotless:runner/memory

What changes

Each run on the runner host has 10 GiB, up from 7, so the host's four jobs hold 40 of its 64 GB.

harness/cov.mjs builds a crate for each 4 GiB of the cgroup's memory, rather than each 2.5 GiB, so test still builds two at once in 10 GiB. Until the deploy, in 7 GiB, it builds one at a time.

Why

rustc was killed with SIGKILL while building knotless-serve's lib tests under coverage, three times in four runs that built it, at knotless-serve answers Cargo's registry for a repository's crates, which grows that crate by 660 lines. Two compiles at once, knotless-serve's lib and its tests among them, no longer fit in 7 GiB with no swap. Building one at a time instead would make every full build slower, while the host has the memory to spare.

How it was checked

Not run here: the cause is taken from the SIGKILL and the runner host's README, not read from the host's dmesg. test on this pull builds one crate at a time, which shows the slower build still fits its time.

Shortcomings

If the kills were not for memory, this does not stop them. Four full jobs at once take 40 GB, which leaves the host 24 GB for itself and its caches.

Approved

This raises the runner's per-job memory from 7 to 10 GiB (deploy.yml and the host README) and changes harness/cov.mjs to build one crate per 4 GiB of cgroup memory instead of per 2.5 GiB. I checked the arithmetic. At 10 GiB, floor(10/4) is 2, capped by the 4 CPUs, so two crates build at once. At 7 GiB, floor(1.75) is 1, so builds run one at a time until the deploy, as the body says. The README and the cov.mjs comment match the new numbers, and no stale "2.5 GiB" or "7 GiB" is left in the docs. The two remaining matches are the old-incident history in the cov.mjs comment, which still reads correctly.

The cause (memory pressure, not another SIGKILL source) is inferred and not confirmed from dmesg, which the body admits. Four jobs at 10 GiB leave 24 GB for the host, which is enough. Nothing here needs changing.

Merged as 3d14371