A held module is in status, and it stops the mesh reading as well
novox/hq 04-ISSUES/125. A module assigned to a machine and never taken runs none of what it declares. Status had no vocabulary for it: the machine was heard from, current, and doing what it was told, so the mesh printed "all doing what they were told" — which was true, and was acted on, and every public name on the machine went dark. Status now names each module a machine is holding rather than running, per machine and with a count, read from what the MACHINE reported rather than from the mesh's take-time listing — the machine is the only thing that knows what it found. The JSON form carries the same rows, absent rather than empty when nothing is held. And a hold suppresses the all-well sentence, where being adopted does not: adopted is a mode somebody chose, a module assigned and never taken is a half-finished action with nothing left to finish it. The condition is now a named function so the rule lives in one place and a test binds to the real thing rather than a copy of it. untakenModules raises a read it cannot make rather than answering "holding nothing" from a failed query, which is the shape this whole issue is.
This commit is contained in:
@@ -556,6 +556,16 @@ type answers struct {
|
||||
// a consequence of the refusals above: a node that does not resolve is not on the network, and
|
||||
// a mesh whose hub is that node has no hub.
|
||||
network string
|
||||
// untaken is, per machine, each assigned module whose resources the machine is holding as it
|
||||
// found them, and how many — a module that was assigned, sent, and is running none of what it
|
||||
// declares because nothing has taken it (novox/hq ADR 0100, 04-ISSUES/125).
|
||||
//
|
||||
// **Its absence cost an outage.** The module was assigned, the push reported success, this
|
||||
// command said the machine was doing everything it was told, and the module's three containers
|
||||
// did not exist. On the strength of those reports the predecessor's proxy was stopped and every
|
||||
// public name on the machine went dark. The holds were correct; they were recorded only in the
|
||||
// machine's own state file, and the one visible symptom was a count that did not add up.
|
||||
untaken map[string]map[string]int
|
||||
}
|
||||
|
||||
// heldBy is every artifact this mesh has built, for a build that may need one as its base.
|
||||
|
||||
Reference in New Issue
Block a user