The registry is addressed the way every other machine is
novox/hq 04-ISSUES/024. The registry machine had its address set with `ip addr add`; every other machine gets a systemd-networkd unit. That one difference stalled the lab indefinitely. An address set by hand leaves networkd waiting to configure a link it was never told about, so the link sits at `configuring` for ever. `systemd-networkd-wait-online` has TimeoutStartUSec=infinity, so `network-online.target` is never reached — and Docker is ordered after it. `docker load` then blocked on a socket whose daemon was queued behind a target that would never come. Measured before and after on the same scenario: stuck with five pending systemd jobs and `docker` inactive; now `enp5s0 configured`, `docker` active, no jobs, and the whole raise completes in 87.5s. The guess in the issue was wrong, and it was wrong in the usual way — stocking had just been changed, so stocking looked guilty. Stocking takes 34s and always did. Two things that made this cost hours rather than minutes are fixed with it. Placing an image now waits for the container runtime to answer and refuses after 120s naming what systemd is waiting on, so a stall becomes a failure that says why instead of three stacked timeouts totalling 35 minutes. And the end-to-end test passes `onProgress`, so a raise says what step it is on — it printed nothing at all until it finished, which is why 35 minutes of nothing read as a slow test.
This commit is contained in:
@@ -170,7 +170,13 @@ before(async () => {
|
||||
console.log(`warm: raising fresh — ${said.why}`);
|
||||
}
|
||||
|
||||
const raised = await raise(loadScenario(`scenarios/${SCENARIO}.yml`), {});
|
||||
// **Progress is printed, and that is not decoration** (novox/hq 04-ISSUES/024). A raise takes
|
||||
// minutes and said nothing until it finished, so a stall and ordinary work were the same
|
||||
// thing to look at — and the one time it mattered, thirty-five minutes of nothing was read as
|
||||
// a slow test until somebody went and looked inside the machine.
|
||||
const raised = await raise(loadScenario(`scenarios/${SCENARIO}.yml`), {
|
||||
onProgress: (m) => console.log(`raise: ${m}`),
|
||||
});
|
||||
instanceId = raised.instanceId;
|
||||
|
||||
// The first node raises everything from a file rather than from a bundle built into the binary,
|
||||
|
||||
Reference in New Issue
Block a user