Deploy honesty: degraded-apply ack amendment; malformed artifact bytes = "no answer" (archreview r3 item 7) #601

Closed
opened 2026-10-08 02:31:10 -04:00 by dohertj2 · 2 comments
Owner

Tranche 2, unplanned. The deploy ack is sent independently of the address-space apply outcome, so a degraded apply still seals Applied fleet-wide (01/S-9). On boot/restore a non-empty but malformed artifact is swallowed into an empty spec list (01/S-10, the surviving leg of #485).
Sources: archreview/00-OVERALL.md:118 + S-9/S-10; archreview/plans/STATUS.md:531.

  • Re-verify both against master
  • Post a degraded-ack amendment after the apply completes
  • Route malformed non-empty bytes to the #485 "null = no answer" path, with a test

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

Tranche 2, unplanned. The deploy ack is sent independently of the address-space apply outcome, so a degraded apply still seals `Applied` fleet-wide (01/S-9). On boot/restore a non-empty but malformed artifact is swallowed into an empty spec list (01/S-10, the surviving leg of #485). Sources: archreview/00-OVERALL.md:118 + S-9/S-10; archreview/plans/STATUS.md:531. - [ ] Re-verify both against master - [ ] Post a degraded-ack amendment after the apply completes - [ ] Route malformed non-empty bytes to the #485 "null = no answer" path, with a test _Filed 2026-10-08 by the pending/deferred-work sweep after the #562–#591 issue sweep._
Author
Owner

Partial on master; left open for the degraded-apply ack amendment only.

  • Item 1, re-verified against master: both gaps were real.
  • Item 3, malformed non-empty artifact bytes on boot/restore are now "no answer", not an empty spec list: the revision does not advance and last-known-good keeps serving (53247a05, merge 93e38156; DriverHostActorUnreadableArtifactTests, DriverHostActorBootFromCacheTests). Review R1 follow-up: cache boot no longer adopts the revision of malformed bytes (e3dcb180, merge b99aea46).
  • Item 2, post a degraded-ack amendment after the address-space apply completes (01/S-9): not done. It changes the ack protocol (ApplyAck is sent independently of the apply outcome, so a degraded apply still seals Applied) and needs a design decision on the contract between node, coordinator and the mesh_transport/DPS ack paths before code.

Progress 2026-10-08 by the hardware-available issue sweep (master d898262c); left open for the remaining items.

Partial on master; left open for the degraded-apply ack amendment only. - [x] Item 1, re-verified against master: both gaps were real. - [x] Item 3, malformed non-empty artifact bytes on boot/restore are now "no answer", not an empty spec list: the revision does not advance and last-known-good keeps serving (53247a05, merge 93e38156; `DriverHostActorUnreadableArtifactTests`, `DriverHostActorBootFromCacheTests`). Review R1 follow-up: cache boot no longer adopts the revision of malformed bytes (e3dcb180, merge b99aea46). - [ ] Item 2, post a degraded-ack amendment after the address-space apply completes (01/S-9): not done. It changes the ack protocol (ApplyAck is sent independently of the apply outcome, so a degraded apply still seals Applied) and needs a design decision on the contract between node, coordinator and the `mesh_transport`/DPS ack paths before code. *Progress 2026-10-08 by the hardware-available issue sweep (master d898262c); left open for the remaining items.*
Author
Owner

Landed on master (merge 88016317; 521e1eb8..82ef8941 + review fixes fe7603ec, 345f4055, af02fce3, 0a821417): the ack is sent only after the address-space apply outcome; a degraded apply seals 'Sealed (degraded)' with a reason on the node's NodeDeploymentState. Review fixes: identical redeploy after a degraded rebuild repairs instead of reporting clean; fused node records its own degraded row; outcome timeout derived from the 2-min apply deadline (105 s) with a distinct timeout reason. Verified: full suite 48 projects 12818 pass 0 fail; live rig: clean deploy sealed in 5s with all 6 rows Applied/NULL, degraded UI rendering checked via SQL probe. Malformed non-empty artifact bytes = 'no answer' is already on master (#485 path). Known low residuals (see reviews): ack lost if DriverHostActor restarts mid-hold; boot RestoreApplied does not track degradation. Closing.

Landed on master (merge 88016317; 521e1eb8..82ef8941 + review fixes fe7603ec, 345f4055, af02fce3, 0a821417): the ack is sent only after the address-space apply outcome; a degraded apply seals 'Sealed (degraded)' with a reason on the node's NodeDeploymentState. Review fixes: identical redeploy after a degraded rebuild repairs instead of reporting clean; fused node records its own degraded row; outcome timeout derived from the 2-min apply deadline (105 s) with a distinct timeout reason. Verified: full suite 48 projects 12818 pass 0 fail; live rig: clean deploy sealed in 5s with all 6 rows Applied/NULL, degraded UI rendering checked via SQL probe. Malformed non-empty artifact bytes = 'no answer' is already on master (#485 path). Known low residuals (see reviews): ack lost if DriverHostActor restarts mid-hold; boot RestoreApplied does not track degradation. Closing.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/lmxopcua#601