Audit per-node central caches for peer-node staleness (InvalidateMethod, ManagementActor cache) — same class as #83 #85
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Same class as #83: several central caches invalidate only on the local node. Inbound-method handler invalidation (
InvalidateMethod, incl. via the bundle-import change bus) and the cache cleared atManagementActor.cs:~2898act locally; the peer central node may keep serving stale entries until TTL or restart. Audit every per-node central cache, record each one's staleness bound, and decide which need a cluster-wide invalidation message (could share one mechanism with #83's peer half).Done on main
a16b7b4e: audit doc docs/plans/2026-11-09-central-cache-staleness-audit.md lists every central cache with its peer staleness bound — all peer-stale caches expire on 5–60 s timers, and Traefik routes only to the active node, so the window is hit only by direct-node calls or a failover inside it; none clearly a bug, so no cross-node invalidation added (the doc names the existing central DistributedPubSub topic if wanted). Fix (local node): management API create/update/delete of inbound API methods cleared the compiled script but not the cached method row — a deleted method stayed callable / a cached not-found hid a new one for up to 5 s; ManagementActor now evicts the row after commit (ApiMethodCacheInvalidationTests: 3 fail without the fix + a control). Owner decisions listed in the doc: role mappings (revoked role works on the peer ≤30 s), inbound PSKs (filed separately), external definitions (#83). Evidence: slnx 0 warnings/0 errors after rebase on #92/#93; DeploymentManager, ManagementService, CentralUI, InboundAPI, Host, Commons, Transport all passed.