From 0041b69d173611afb395e7c0f6891b8d89ffe64f Mon Sep 17 00:00:00 2001 From: jochens Date: Fri, 13 Nov 2026 03:27:38 +0100 Subject: [PATCH] zfs: findings is a state of the module's state list, not of requires, so the conditions keeper reads it The validator refused zfs and mesh-conditions: mesh-conditions reads zfs.findings, which zfs had moved to bus state in requires, where the new form has no readers (ADR 0596 section 2). The keeper process's bus.state keeps naming findings. The manifest test holds it. Builds: design 42 zfs-owns-zfs A-46 (A-32, 26, 27) --- modules/zfs/cmd/zfs-tools/manifest_test.go | 8 +++++--- modules/zfs/module.json | 8 +++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/zfs/cmd/zfs-tools/manifest_test.go b/modules/zfs/cmd/zfs-tools/manifest_test.go index cac180233..9572dd4db 100644 --- a/modules/zfs/cmd/zfs-tools/manifest_test.go +++ b/modules/zfs/cmd/zfs-tools/manifest_test.go @@ -480,13 +480,15 @@ func TestTheManifestsBusStateKeeperAndTools(t *testing.T) { if ev["storage"] != "stream" || ev["template"] != "events" || opts["max-age-days"] != float64(30) || strings.Join(kinds, ",") != strings.Join(EventKinds, ",") { t.Errorf("the events stream: %v", ev) } - for _, n := range []string{"applied", "schedule", "findings"} { + for _, n := range []string{"applied", "schedule"} { if e := reqs[n]; e == nil || e["storage"] != "key-value" || e["template"] != "state" { t.Errorf("the state %s: %v", n, e) } } - if reqs["findings"]["options"] != nil { - t.Errorf("findings declares no stream of its own (A-32): %v", reqs["findings"]) + // A-46: findings is a state of the module's `state` list, as every observer's, and not asked for in requires, where the + // conditions keeper would not read it. + if reqs["findings"] != nil || fmt.Sprint(tree["state"]) != "[findings]" { + t.Errorf("findings is a state of the state list, not of requires (A-46): %v, %v", tree["state"], reqs["findings"]) } l := reqs[LedgerName] lo, _ := l["options"].(map[string]any) diff --git a/modules/zfs/module.json b/modules/zfs/module.json index ef2fb0e1a..ef1a00543 100644 --- a/modules/zfs/module.json +++ b/modules/zfs/module.json @@ -17,6 +17,9 @@ "owner": "zfs-keeper" } }, + "state": [ + "findings" + ], "requires": [ { "name": "events", @@ -49,11 +52,6 @@ "storage": "key-value", "template": "state" }, - { - "name": "findings", - "storage": "key-value", - "template": "state" - }, { "name": "snapshots", "storage": "ledger",