Repository navigation
v0.0.18
What changed
- A job reserves memory from its last runs, not its last days (#125, ADR 0070). A job that got lighter, after a workflow fix bounded its heaps or workers, kept reserving its old peaks for up to 7 days and kept its profile's cap for 30. On one host that held a 14G reservation for a job that peaked at 8.8G, and because a runner takes whichever queued job GitHub hands it, every job of the repository waited for 14G free. A job's reservation now follows its last 20 runs, and a hold at its cap ends after 3 runs in a row that stayed clear of it.
- A cap is raised only when the container's own limit ran out of memory (#125). A JVM grows its heap toward the room it has, so its peak tracked the cap and each raise asked for the next. runnerd now reads
memory.events.local: a peak near the cap that the kernel never stopped does not raise it, and neither does a limit an inner container hit. A run killed at its cap raises the profile straight to what the job needed, not one step per kill. - Auto sizing lowers
memorysafely (#125). Lowerings read a longer window of each job's runs, and a lowering is taken back to the cap it came from when a run is killed at the new cap, or when a job that passed before fails 3 runs in a row on two branches. Runs recorded before the upgrade can hold a cap up but never raise one.
Upgrading
The first start migrates the job history to version 14, which 0.0.17 refuses; copy the database while runnerd is stopped to keep a way back. Install 0.0.18 with install.sh --version v0.0.18, move each profile's image to its -0.0.18 tag and restart runnerd. Details: Upgrading.