MGS3022: no broker answered
A step was not started. The workspace sets broker: required, and nothing answered on
the broker socket, so no process could say whether this host has room for it.
[MGS3022] not starting (root) test: no broker answered for this host's capacity
(broker: unavailable: dial unix:///run/user/501/magus/broker.sock: connection refused),
and broker: required refuses to run unarbitrated. `magus broker status` says whether
one is up and where it logs
The broker is the per-user process that holds the host's concurrency slots and declared
memory_mb (see MGS3009). A run starts one when none answers, so this
code means that start failed, or the broker died while the run was going and no other
came up.
It exits 69, EX_UNAVAILABLE from sysexits.h, and not MGS3009's 75: a busy host
clears on its own, while a host with no arbiter stays that way until something starts
one. A wrapper that retries on 75 does not loop on this.
Resolution
- Run
magus broker status. It exits non-zero when no broker is running. - Read the broker's log,
$XDG_STATE_HOME/magus/broker.log(~/.local/state/magus/when unset), for why it did not start or why it exited. - Start one in the foreground to watch it:
magus broker. - If this host should run without arbitration, set
broker: best-effort(a step runs unarbitrated and says so once) orbroker: off(no broker is started or asked).
See also
- MGS3009: the refusal a broker gives when the host is full.
- Concurrency: how the broker divides the host.