chadtmiller.com/knotless
git that lives in your Atmosphere account
Each run on the runner host has 10 GiB, and builds a crate for each 4
MergedThis 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.
8 passed, 2 skipped
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.mjsbuilds a crate for each 4 GiB of the cgroup's memory, rather than each 2.5 GiB, soteststill builds two at once in 10 GiB. Until the deploy, in 7 GiB, it builds one at a time.Why
rustcwas killed with SIGKILL while buildingknotless-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.teston 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.