mesh-provisioner-client: retry a refused write on the node-engine's wake and ask the vault again at once (issue 924) #482

Merged
mesh-tools merged 1 commits from fix/provisioner-retries-on-declaration into main 2026-10-25 21:08:48 +00:00
Member

Issue 924 (the provisioner client's refused writes are never tried again), met live 2026-10-25 on ace (mesh-build-go's broker file refused one second before ace's declaration named it, never tried again, crash loop).

  • On a wake of the write socket (the node-engine now touches it after an apply that lets a refused file be written: mesh-host PR of the same branch name) the client logs the retry and asks the vault again at once for refused secrets.
  • A change to the module's own assignment asks the vault again at once for that module's refused secrets.
  • Each refused write is logged with what will retry it. README updated.

Checked: go test -race -count=1 ./... (18 s) and go vet -tags integration ./... pass in the client. No top-level test functions added (rows in the existing refused-secret test). No try (recovery mode: the operator merges by hand).

Reviewed-by: review-prov@shanks at d0566f9ade

Issue 924 (the provisioner client's refused writes are never tried again), met live 2026-10-25 on ace (mesh-build-go's broker file refused one second before ace's declaration named it, never tried again, crash loop). - On a wake of the write socket (the node-engine now touches it after an apply that lets a refused file be written: mesh-host PR of the same branch name) the client logs the retry and asks the vault again at once for refused secrets. - A change to the module's own assignment asks the vault again at once for that module's refused secrets. - Each refused write is logged with what will retry it. README updated. Checked: go test -race -count=1 ./... (18 s) and go vet -tags integration ./... pass in the client. No top-level test functions added (rows in the existing refused-secret test). No try (recovery mode: the operator merges by hand). Reviewed-by: review-prov@shanks at d0566f9ade9ab9a3c612c041eda9c6ee3e3c7374
mesh-tools added 1 commit 2026-10-25 20:50:49 +00:00
Fill a refused file again once the node-engine's declaration may let it through (ace, 2026-10-25 21:17)
mesh/delivery merged: source.main moved to novox/mesh-catalog@573a59e3cc07
mesh/delivery-group group fix/provisioner-retries-on-declaration merged: every member is merged
mesh/check pass d0566f9ade9a on 573a59e3cc07 | unit 2301 run, 3410 kept, 10 skipped | integration 2326 run, 3431 kept, 13 skipped | over bound: unit, …
d0566f9ade
The node-engine refused mesh-build-go's files as not named as filled 32 s before
its want arrived, and nothing filled them after the apply that named them: the
runtime crash-looped on its missing broker credential. The client now fills
every module again when the node-engine touches its write socket after such an
apply (mesh-host fix/provisioner-retries-on-declaration), says each retry and
each refusal it waits on, and asks the vault again at once for a refused secret
when that wake or the module's own assignment may have ended the refusal.
Author
Member

Delivery novox/mesh-catalog@d0566f9ade9a — merged since 2026-10-25T21:08:50Z

Source — source.main moved to novox/mesh-catalog@573a59e3cc. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Group fix/provisioner-retries-on-declaration: novox/mesh-catalog@d0566f9ade, novox/mesh-host@338797a527

  • composed together: pass — the checker's verdict at the members' heads (9eb0f92fd6b3)

Transitions

  • 2026-10-25 20:50 (new) → proposed (announced): novox/mesh-catalog#482's head announced
  • 2026-10-25 21:08 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail
  • 2026-10-25 21:08 ready → merged (merged): on the trunk its modules follow: merged there

The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@d0566f9ade9a` — **merged** since 2026-10-25T21:08:50Z **Source** — source.main moved to novox/mesh-catalog@573a59e3cc07. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/provisioner-retries-on-declaration`: novox/mesh-catalog@d0566f9ade9a, novox/mesh-host@338797a52703 - composed together: pass — the checker's verdict at the members' heads (9eb0f92fd6b3) **Transitions** - 2026-10-25 20:50 (new) → proposed (announced): novox/mesh-catalog#482's head announced - 2026-10-25 21:08 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail - 2026-10-25 21:08 ready → merged (merged): on the trunk its modules follow: merged there The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
mesh-tools merged commit 573a59e3cc into main 2026-10-25 21:08:48 +00:00
mesh-tools deleted branch fix/provisioner-retries-on-declaration 2026-10-25 21:08:49 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#482