Leave out a module whose stored manifest has an unknown field, and raise it (hq ADR 0262 review)
mesh/merge-gate pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step; every machine composes with the change as it…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group feat/setting-defaults failed: a member failed
mesh/merge-gate pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step; every machine composes with the change as it…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group feat/setting-defaults failed: a member failed
A key dropped silently ran a module without what its manifest says, and a key inside a block still failed the whole catalogue. Judge a key by what it is about, and narrow the listing to one machine.
This commit is contained in:
@@ -20,8 +20,9 @@ import (
|
||||
var noted sync.Map
|
||||
|
||||
// noteUnknown says, once per module and key, that a stored manifest has a key this controller does not
|
||||
// know and that it was read without it (novox/hq ADR 0262). A manifest registered under a newer
|
||||
// controller is read by an older one after a rollback; refusing it here failed the whole catalogue.
|
||||
// know (novox/hq ADR 0262). A manifest registered under a newer controller is read by an older one after
|
||||
// a rollback; refusing it here failed the whole catalogue. The module is left out of every machine by name
|
||||
// (catalogue.LeftOut), and the controller's tick raises a condition for it.
|
||||
func noteUnknown(m catalogue.Manifest) {
|
||||
u := m.UnknownField()
|
||||
if u == "" {
|
||||
@@ -30,8 +31,9 @@ func noteUnknown(m catalogue.Manifest) {
|
||||
if _, said := noted.LoadOrStore(m.Module+"\x00"+u, true); said {
|
||||
return
|
||||
}
|
||||
log.Printf("the stored manifest of %s has a key this controller does not know (%s); read without it — "+
|
||||
"a newer controller registered it (novox/hq ADR 0262)", m.Module, u)
|
||||
log.Printf("the stored manifest of %s has a key this controller does not know (%s): a newer controller "+
|
||||
"registered it, and %s is left out of every machine until this controller is updated (novox/hq ADR 0262)",
|
||||
m.Module, u, m.Module)
|
||||
}
|
||||
|
||||
// ErrNoSuchModule is what the mesh says about a module it has never been told about.
|
||||
|
||||
Reference in New Issue
Block a user