fix(mesh): 1B.1 review follow-ups
Two review items from Task 1B.1, both diagnostic: 1. CentralCommandGrpcService's "actor not ready" Warning omitted the peer and the correlation id while the decode-failure Warning six lines above carried both. These are the only two ways an ack fails to reach the coordinator, and an operator has to correlate either against the node's own log. Decoding has already succeeded on this path, so the DECODED correlation id is free. 2. A fused driver,admin,cluster-MAIN node under Mode=Grpc owes BOTH validator surfaces at once (driver keys AND ConfigServe:GrpcListenPort). The two blocks are independent `if`s; chained as `else if` a fused central node would be graded on one surface only and boot with nowhere for any ack to land. Pinned from both sides plus the fully-configured pass.
This commit is contained in:
@@ -97,11 +97,17 @@ public sealed class CentralCommandGrpcService : GeneratedServiceBase
|
||||
|
||||
if (!_registry.TryGet<CentralCommunicationActorKey>(out var actor))
|
||||
{
|
||||
// Peer and correlation id are carried here for the same reason the decode-failure warning
|
||||
// above carries them: these two rejections are the only ways an ack fails to reach the
|
||||
// coordinator, and an operator has to correlate either against the node's own log. The
|
||||
// decode has already succeeded on this path, so the DECODED correlation id is used —
|
||||
// unlike above, where the raw wire string is the only value guaranteed readable.
|
||||
_log.LogWarning(
|
||||
"Received an ApplyAck for {DeploymentId} from {NodeId} before the central "
|
||||
+ "communication actor was registered on this node; refusing with Unavailable so the "
|
||||
+ "caller retries rather than recording a failure against a node that applied",
|
||||
ack.DeploymentId, ack.NodeId);
|
||||
"Received an ApplyAck for {DeploymentId} (correlation '{CorrelationId}') from {NodeId} "
|
||||
+ "at {Peer} before the central communication actor was registered on this node; "
|
||||
+ "refusing with Unavailable so the caller retries rather than recording a failure "
|
||||
+ "against a node that applied",
|
||||
ack.DeploymentId, ack.CorrelationId, ack.NodeId, context.Peer);
|
||||
throw new RpcException(new Status(StatusCode.Unavailable, "central command actor not ready"));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user