Skip to content

v0.11.0

Choose a tag to compare

@github-actions github-actions released this 14 Oct 15:13
· 47 commits to main since this release

A job waiting for what a running job holds no longer sets aside what that job frees when it ends, so the checks behind it run meanwhile; and status tells a job whose command exited, leaving processes that hold its slot, from one whose loadmaster is gone.

Changed

  • A waiting job sets aside only what it is not sure to get back. A set-aside is there so that a waiting job finds what it needs free once it can start, so it now sets aside its amount less what is sure to be freed by then. When, on every dimension it is short of, the running jobs ahead leave it no room by its own limit, only the end of a job ahead that holds such a dimension can let it in, and that end frees what the job held: the waiting job counts on it, and jobs behind may use that much meanwhile. What one end frees is counted on once. When something that frees nothing could let it in instead (a job ahead leaving the line, CPU outside the queue going down), it sets aside everything, as before. No job is delayed by jobs that got in line after it, as before.
    • A unit run waiting for the browser that a long UI capture holds used to set aside its cores, and a lint behind it, short of those, held back every check behind it. The unit run can only start once the capture ends, which frees the capture's cores: it now sets none aside, and the lint starts.
    • A job waiting for its checkout's limit no longer sets aside the machine-wide resource that the run ahead in its checkout frees, so a job from another checkout takes the one that is free.
    • loadmaster status and the waiting messages say what a waiting job counts on, such as counts on 2 cores that #1 `ui` frees when it ends, besides what it sets aside. loadmaster check warns about weights by the same rule.
  • Jobs whose command exited are listed as lingering. A task whose command exits while processes it started in its process group still run keeps its slot until they exit. loadmaster status used to list that job as orphaned, saying loadmaster was gone; it now lists it as lingering, with the processes in its group, and loadmaster cancel ID stops them. Orphaned now means only a job whose loadmaster is gone while its task's command still runs. The message at the handover names the processes too.

Upgrading

The queue's layout is unchanged: 0.10 and 0.11 share queue-v3.db. Each job is admitted by its own loadmaster, and 0.10's rule sets aside more, so the two can run side by side; a job gets the new rule once its agent runs 0.11.

Install

mise use -g github:ktanaka101/loadmaster@0.11.0

Or download the archive for your platform below: macOS (Apple Silicon and Intel) and Linux (x86_64 and arm64, statically linked).