Merge review R6 fixes: numeric array writes converted element-wise (checked) to the node's element type, refusing out-of-range/fractional/NaN; array-to-scalar refusal scoped to Modbus/S7; Primary-verdict pre-join window documented + real MemberUp subscription test; passive LocalDb pair half drain-gated on its mesh partner
Claude-Session: https://claude.ai/code/session_01Ef2ozxS7QPanGT8uoATbTe
This commit is contained in:
@@ -363,9 +363,14 @@ Hence: bind the claim to a connection, and rebuild the connection on role change
|
||||
| Role unknown, no driver peer (single node) | open | `ONLINE` |
|
||||
|
||||
The verdict comes from `PrimaryGatePolicy.ShouldServiceAsPrimary` via `IDriverPrimaryRoleSource`
|
||||
(`Core.Abstractions`), published by `DriverHostActor` on every redundancy snapshot and **sampled on a
|
||||
1-second timer** rather than evented — a process-singleton raising events at per-instance drivers
|
||||
outlives every driver it holds a reference to.
|
||||
(`Core.Abstractions`), published by `DriverHostActor` at host start, on every cluster membership change and on
|
||||
every redundancy snapshot, and **sampled on a 1-second timer** rather than evented — a process-singleton
|
||||
raising events at per-instance drivers outlives every driver it holds a reference to.
|
||||
|
||||
> ⚠️ **"Driver peer present" is this node's own cluster view.** Before the node has joined, it sees no
|
||||
> members, which is the single-node row: a node cold-starting into a pair whose peer is already Primary
|
||||
> can open the claim until its join completes (seconds; up to the bootstrap guard's 25 s partner probe),
|
||||
> so both nodes may briefly hold it (review R6 MINOR-2).
|
||||
|
||||
> **Accepted trade: a brief edge-visible `OFFLINE` during failover**, while the old Primary stands down
|
||||
> and the new one connects and republishes. That is a genuine state transition — for that window there
|
||||
|
||||
Reference in New Issue
Block a user