Redundancy: Primary selection still matches gossiped roles case-sensitively (Health.Akka OldestUpMember) #620

Closed
opened 2026-10-08 02:31:15 -04:00 by dohertj2 · 1 comment
Owner

RedundancyStateActor.SelectOldestUpMemberOfRole/SelectDriverPrimary delegate to ZB.MOM.WW.Health.Akka's ClusterActiveNode.OldestUpMember (Akka's case-sensitive Member.HasRole); in a rolling upgrade mixing pre-R3-04 builds a miscased role can elect the wrong Primary.
Sources: CLAUDE.md "Known residual, not closed by R3-04"; archreview/plans/STATUS.md:528 (follow-up 3).

  • Patch upstream in scadaproj (ZB.MOM.WW.Health.Akka) to match case-insensitively
  • Bump the pin here; drop the residual note from CLAUDE.md

Filed 2026-10-08 by the pending/deferred-work sweep after the #562–#591 issue sweep.

`RedundancyStateActor.SelectOldestUpMemberOfRole`/`SelectDriverPrimary` delegate to `ZB.MOM.WW.Health.Akka`'s `ClusterActiveNode.OldestUpMember` (Akka's case-sensitive `Member.HasRole`); in a rolling upgrade mixing pre-R3-04 builds a miscased role can elect the wrong Primary. Sources: CLAUDE.md "Known residual, not closed by R3-04"; archreview/plans/STATUS.md:528 (follow-up 3). - [ ] Patch upstream in scadaproj (`ZB.MOM.WW.Health.Akka`) to match case-insensitively - [ ] Bump the pin here; drop the residual note from CLAUDE.md _Filed 2026-10-08 by the pending/deferred-work sweep after the #562–#591 issue sweep._
Author
Owner

Closed as an accepted residual (a6192159).

The match lives in ZB.MOM.WW.Health.Akka (ClusterActiveNode.OldestUpMember over Akka's own Member.HasRole), which this repo does not own. A fixed-build pair can no longer gossip a miscased role at all (normalisation happens before gossip), so the exposure is only a mixed pre-R3-04/fixed rolling-upgrade window. Documented in docs/Redundancy.md ("Accepted residual (#620)"), and the CLAUDE.md note was reworded to say so. Reopen if an upstream case-insensitive match lands in scadaproj and the pin is bumped.

Closed 2026-10-08 by the hardware-available issue sweep (master d898262c).

Closed as an accepted residual (a6192159). The match lives in `ZB.MOM.WW.Health.Akka` (`ClusterActiveNode.OldestUpMember` over Akka's own `Member.HasRole`), which this repo does not own. A fixed-build pair can no longer gossip a miscased role at all (normalisation happens before gossip), so the exposure is only a mixed pre-R3-04/fixed rolling-upgrade window. Documented in docs/Redundancy.md ("Accepted residual (#620)"), and the CLAUDE.md note was reworded to say so. Reopen if an upstream case-insensitive match lands in scadaproj and the pin is bumped. *Closed 2026-10-08 by the hardware-available issue sweep (master d898262c).*
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/lmxopcua#620