review(ControlPlane): fix premature deploy-seal from unexpected-node ack
Review at HEAD 7286d320. ControlPlane-001 (Medium): ConfigPublishCoordinator.HandleAck
now discards acks from nodes not in _expectedAcks (prevented premature SealDeployment) +
regression test. -002 (flipped-node log count), -003 (redundant mapper arms) tidied.
This commit is contained in:
@@ -160,6 +160,16 @@ public sealed class ConfigPublishCoordinator : ReceiveActor, IWithTimers
|
||||
return;
|
||||
}
|
||||
|
||||
// Discard acks from nodes that were not in the expected-ack set at dispatch time.
|
||||
// Without this guard an unexpected-node ack inflates _acks.Count and can trigger a
|
||||
// premature seal/fail before every expected node has actually applied the deployment.
|
||||
if (!_expectedAcks.Contains(msg.NodeId))
|
||||
{
|
||||
_log.Debug("Discarding ApplyAck from unexpected node {Node} for {Id} (not in expected set)",
|
||||
msg.NodeId, msg.DeploymentId);
|
||||
return;
|
||||
}
|
||||
|
||||
_acks[msg.NodeId] = msg.Outcome;
|
||||
PersistNodeAck(msg);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user