Issues 065 and 066 — the apply failure model's two gaps #56

Merged
jschoubben merged 1 commits from issue/065-066-apply-failure-model into main 2026-09-20 12:28:19 +00:00
Owner

Two open questions surfaced while reviewing the host apply loop (during the controller/host-split discussion), each a design gap rather than an incident:

  • 065 — a permanently-failing resource is retried for ever with no escalation. The reconcile loop is right for transient failures but makes a permanent one silent-in-the-way-that-matters: a machine looks busy (up, reconciling) while a resource inside it has never once applied, and nothing distinguishes "stuck for a week" from "failed a minute ago" without someone running push --behind.
  • 066 — a partly-applied declaration leaves a mixed state with no rollback. Harmless for independent resources (deliberately so, per 04-ISSUES/011), unexamined for resource pairs that are only correct together, where gating doesn't apply and a half-state can be internally inconsistent.

Both are status: open, located-in: [], no fix proposed — diagnosis is a separate step. Checks (records, index, cycle) pass.

Two open questions surfaced while reviewing the host apply loop (during the controller/host-split discussion), each a design gap rather than an incident: - **065** — a permanently-failing resource is retried for ever with no escalation. The reconcile loop is right for transient failures but makes a permanent one silent-in-the-way-that-matters: a machine looks busy (up, reconciling) while a resource inside it has never once applied, and nothing distinguishes "stuck for a week" from "failed a minute ago" without someone running `push --behind`. - **066** — a partly-applied declaration leaves a mixed state with no rollback. Harmless for independent resources (deliberately so, per 04-ISSUES/011), unexamined for resource *pairs* that are only correct together, where gating doesn't apply and a half-state can be internally inconsistent. Both are `status: open`, `located-in: []`, no fix proposed — diagnosis is a separate step. Checks (records, index, cycle) pass.
jschoubben added 1 commit 2026-09-20 12:28:14 +00:00
Surfaced while reviewing the host apply loop for the controller/host
split discussion. 065: a permanently-failing resource retries for ever
with no escalation — reported, but never raises its hand as stuck.
066: a partly-applied declaration leaves a mixed state with no rollback,
which is harmless for independent resources and unexamined for pairs
that are only correct together. Both are questions HQ must answer, not
incidents — status open, no fix proposed.
jschoubben merged commit df2c3f63a5 into main 2026-09-20 12:28:19 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/hq#56