From 1c6ac37fc16de5cbf8bb6ba3cffa80fc61086748 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 4 Nov 2026 10:53:44 +0100 Subject: [PATCH] mesh-grants: the controller's take-in and config-follow consumers on three buckets are removable leftovers (issue 1126) Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn --- .../internal/buscompose/buscompose_test.go | 16 ++++++++++++++-- .../internal/buscompose/health_grants.go | 4 ++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/modules/mesh-grants/internal/buscompose/buscompose_test.go b/modules/mesh-grants/internal/buscompose/buscompose_test.go index 16a053d0..09feca5b 100644 --- a/modules/mesh-grants/internal/buscompose/buscompose_test.go +++ b/modules/mesh-grants/internal/buscompose/buscompose_test.go @@ -712,7 +712,14 @@ func healthChecks(t *testing.T) { // controller's built-before, and each node's engine's of restic's backed-up (issue 1126). "$JS.API.CONSUMER.INFO.EVENTS.novox_mesh-catalog", "$JS.API.CONSUMER.DELETE.EVENTS.novox_mesh-catalog", "$JS.API.CONSUMER.INFO.EVENTS.a_mesh-host", "$JS.API.CONSUMER.DELETE.EVENTS.a_mesh-host", - "$JS.API.CONSUMER.INFO.CONTROL.controller"}, + "$JS.API.CONSUMER.INFO.CONTROL.controller", + // And the controller's take-in and config-follow consumers on three modules' buckets, each by its name (issue 1126). + "$JS.API.CONSUMER.INFO.KV_mesh-delivery-builder_builds.mesh-controller-take-in", + "$JS.API.CONSUMER.DELETE.KV_mesh-delivery-builder_builds.mesh-controller-take-in", + "$JS.API.CONSUMER.INFO.KV_mesh-delivery-indexer_modules.mesh-controller-take-in", + "$JS.API.CONSUMER.DELETE.KV_mesh-delivery-indexer_modules.mesh-controller-take-in", + "$JS.API.CONSUMER.INFO.KV_mesh-config_resolved.mesh-controller-config-follow", + "$JS.API.CONSUMER.DELETE.KV_mesh-config_resolved.mesh-controller-config-follow"}, } mayNot := map[string][]string{ // The keeper writes no findings and no attempts; no observer writes the keeper's buckets (clause 2). @@ -760,7 +767,12 @@ func healthChecks(t *testing.T) { "$JS.API.STREAM.UPDATE.KV_mesh-host_acts", "$JS.API.STREAM.UPDATE.KV_mesh-controller_calls", "$JS.API.STREAM.UPDATE.EVENTS", "$JS.API.STREAM.UPDATE.KV_mesh-controller_lease", "$JS.API.STREAM.PURGE.KV_mesh-controller_lease", "$JS.API.STREAM.DELETE.KV_mesh-controller_other", "$JS.API.STREAM.DELETE.OBJ_declaration-files-zz", - "$JS.API.CONSUMER.DELETE.EVENTS.a_mesh-delivery", "$KV.mesh-controller_lease.holder"}, + "$JS.API.CONSUMER.DELETE.EVENTS.a_mesh-delivery", "$KV.mesh-controller_lease.holder", + // Only the three named consumers of those buckets, never another of them nor a wider form (issue 1126). + "$JS.API.CONSUMER.DELETE.KV_mesh-delivery-builder_builds.mesh-delivery-take-in", + "$JS.API.CONSUMER.DELETE.KV_mesh-delivery-indexer_modules.mesh-config-follow", + "$JS.API.CONSUMER.DELETE.KV_mesh-config_resolved.mesh-controller-take-in", + "$JS.API.CONSUMER.DELETE.KV_mesh-config_resolved.other", "$JS.API.STREAM.DELETE.KV_mesh-config_resolved"}, "a.nats.other": {"$JS.API.CONSUMER.DELETE.DEAD_LETTER_NOTICES.controller", "$KV.mesh-host_acts.g14.a1", "$JS.API.STREAM.UPDATE.KV_mesh-controller_lease"}, "a.nats": {"$JS.API.CONSUMER.DELETE.DEAD_LETTER_NOTICES.controller", "$KV.mesh-host_acts.g14.a1"}, diff --git a/modules/mesh-grants/internal/buscompose/health_grants.go b/modules/mesh-grants/internal/buscompose/health_grants.go index 7b06c49a..d6323e35 100644 --- a/modules/mesh-grants/internal/buscompose/health_grants.go +++ b/modules/mesh-grants/internal/buscompose/health_grants.go @@ -30,6 +30,10 @@ var HealersWould = health.HealersModule + "." + health.WouldState var ControllerLeftoverConsumers = []string{ "EVENTS." + ControllerName, "EVENTS." + MergesConsumerName, "EVENTS.novox_mesh-delivery", "EVENTS.novox_mesh-catalog", "CONTROL." + ControllerName, DeadLetterNoticesStream + "." + ControllerName, + // The controller's consumers on three modules' buckets (issue 1126): the take-in on the builder's builds and on the + // indexer's modules, and the config follow on the resolved configuration. + "KV_mesh-delivery-builder_builds.mesh-controller-take-in", "KV_mesh-delivery-indexer_modules.mesh-controller-take-in", + "KV_mesh-config_resolved.mesh-controller-config-follow", } // ControllerLeftoverConsumersOn are ControllerLeftoverConsumers and, for each node given, the consumer the controller