From a783ffa4970324bd384c59ea6aa8024d9475e082 Mon Sep 17 00:00:00 2001 From: jochen Date: Fri, 30 Oct 2026 00:00:53 +0100 Subject: [PATCH] Carry the kinds of D-root, D11 and D13's data held twice, which the operator dropped too, until the lease write (issue 1952) --- .../mesh-conditions/cmd/mesh-conditions/homes.go | 13 +++++++------ .../cmd/mesh-conditions/keeper_test.go | 6 +++--- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/modules/mesh-conditions/cmd/mesh-conditions/homes.go b/modules/mesh-conditions/cmd/mesh-conditions/homes.go index 8c33215d..06ad8187 100644 --- a/modules/mesh-conditions/cmd/mesh-conditions/homes.go +++ b/modules/mesh-conditions/cmd/mesh-conditions/homes.go @@ -27,8 +27,8 @@ type Home struct { Why string } -// Dropped is the reason of the probes the operator dropped from this release (D2, D3, D4, D12, D-heard): their kinds end -// with the controller and are carried until the lease write. +// Dropped is the reason of the probes the operator dropped from this release (D2, D3, D4, D12, D-heard, D-root, D11, +// and D13's data held twice): their kinds end with the controller and are carried until the lease write. const Dropped = "dropped 2026-10-30 by the operator; the owning module declares its own check later (research 074)" // The kinds' homes, by kind: ADR 0564's rows, and the 63 kinds the controller's code raises that the record left without @@ -67,11 +67,9 @@ var Homes = map[string]Home{ "consumer-behind": {Source: "D6", Controller: true, Observer: selfCheck}, "stream-wrong": {Source: "D7", Controller: true, Observer: selfCheck}, "own-address-banned": {Source: "D8", Controller: true, Observer: selfCheck}, - "cleanup-waiting": {Source: "D11", Controller: true, Observer: selfCheck}, // its data half reads disk-load (L7) "data-unmeasured": {Source: "D13", Controller: true, Observer: selfCheck}, "data-shrank": {Source: "D13", Controller: true, Observer: selfCheck}, // readings from disk-load (L7) "empty-replacement": {Source: "D13", Controller: true, Observer: selfCheck}, - "data-held-twice": {Source: "D13", Controller: true, Observer: selfCheck}, "data-quiet": {Source: "D13", Controller: true, Observer: selfCheck}, "backup-stale": {Source: "D13", Controller: true, Observer: selfCheck}, "data-missing": {Source: "D13", Controller: true, Observer: selfCheck}, @@ -83,7 +81,6 @@ var Homes = map[string]Home{ "watchdogs-silent": {Source: "DW", Controller: true, Observer: selfCheck}, "core-unhealthy": {Source: "H-bus", Controller: true, Observer: selfCheck}, "agent-can-become-root": {Source: "DA", Controller: true, Observer: selfCheck}, - "root-not-free": {Source: "D-root", Controller: true, Observer: selfCheck}, "probe-failed": {Source: "doctor", Controller: true, Observer: selfCheck}, // The healers' own (clause 7, Limits 2). "healer-wanted": {Source: "S15", Controller: true, Observer: healers}, @@ -120,7 +117,8 @@ var Homes = map[string]Home{ "unknown-field": {Source: "read", Controller: true, Carried: true}, "bus-objects-unasserted": {Source: "send", Controller: true, Carried: true}, // The probes the operator dropped from this release (D2 resolvers, D3 holders, D4 archives, D12 bindings, D-heard - // withheld hearings): their kinds are carried until the lease write. + // withheld hearings, D-root, D11 retired data, and D13's data held twice): their kinds are carried until the lease + // write. "resolver-wrong": {Source: "D2", Controller: true, Carried: true, Why: Dropped}, "holder-silent": {Source: "D3", Controller: true, Carried: true, Why: Dropped}, "archives-missing": {Source: "D4", Controller: true, Carried: true, Why: Dropped}, @@ -129,6 +127,9 @@ var Homes = map[string]Home{ "binding-moved": {Source: "D12", Controller: true, Carried: true, Why: Dropped}, "binding-moving": {Source: "D12", Controller: true, Carried: true, Why: Dropped}, "grant-composes-nothing": {Source: "withheld", Controller: true, Carried: true, Why: Dropped}, + "root-not-free": {Source: "D-root", Controller: true, Carried: true, Why: Dropped}, + "cleanup-waiting": {Source: "D11", Controller: true, Carried: true, Why: Dropped}, + "data-held-twice": {Source: "D13", Controller: true, Carried: true, Why: Dropped}, // The lead, 2026-10-29: no delivery plans since R6 (wants replace them), and a stalled delivery is the watchman's // stuck finding seen directly. "plan-failed": {Source: "S23", Controller: true, Carried: true}, diff --git a/modules/mesh-conditions/cmd/mesh-conditions/keeper_test.go b/modules/mesh-conditions/cmd/mesh-conditions/keeper_test.go index e413e033..475f8ec5 100644 --- a/modules/mesh-conditions/cmd/mesh-conditions/keeper_test.go +++ b/modules/mesh-conditions/cmd/mesh-conditions/keeper_test.go @@ -305,7 +305,7 @@ func TestCompareCountsOnlyWhatBothSidesRaise(t *testing.T) { t.Errorf("compare: %+v", cmp) } // The lead's table of 2026-10-29: each kind has its home, lease-split and image-missing do not end, and the 22 - // that end are carried; with the 8 kinds of the probes the operator dropped on 2026-10-30, 30. + // that end are carried; with the 11 kinds of the probes the operator dropped on 2026-10-30, 33. carried := 0 for _, h := range Homes { if h.Carried { @@ -320,12 +320,12 @@ func TestCompareCountsOnlyWhatBothSidesRaise(t *testing.T) { } } for _, kind := range []string{"resolver-wrong", "holder-silent", "archives-missing", "archives-unheld", "binding-kept", - "binding-moved", "binding-moving", "grant-composes-nothing"} { + "binding-moved", "binding-moving", "grant-composes-nothing", "root-not-free", "cleanup-waiting", "data-held-twice"} { if h := Homes[kind]; !h.Carried || h.Observer != "" || h.Why != Dropped { t.Errorf("the dropped probe's kind %s is %+v", kind, h) } } - if len(Homes) != 84 || carried != 30 { // 19 of ADR 0564, the 63 of the table, plan-failed and stalled + if len(Homes) != 84 || carried != 33 { // 19 of ADR 0564, the 63 of the table, plan-failed and stalled t.Errorf("the table holds %d kinds, %d carried", len(Homes), carried) } if _, err := r.k.TakeOver(nil, "jochen", "now"); err == nil || !strings.Contains(err.Error(), "2 difference") {