A waiting ask hears its step's end even when its own watch goes deaf (four lost checks, 2026-10-28) #121

Merged
mesh-tools merged 2 commits from fix/lost-check into main 2026-10-28 20:40:58 +00:00
Member

Delivery group fix/lost-check, with mesh-delivery fix/lost-check.

Symptom. mesh-catalog #553's verdict stayed running after its step mvsgthyjed5786 passed on shanks at 19:09:31Z: the watch of that one step key, opened at 18:46:05Z, heard neither the step's start nor its end and never closed, so no bound ran and nothing would judge it. The same kind was met four times on 2026-10-28 (issue 734's kind).

Change (delivery/buildrun). HeardEnds stands between Asker and each ask's watch. It is nudged at every step end of the same build module (HearEnds: one watch per steps state, updates only; one that closes is opened again, and left after 3 closes in a row that heard nothing) and at a reconnect; every waited ask then reads its step keys (JetStreamAsks.AskSteps, a read, not a watch). An ask's watch that closes is opened again, at most 3 times. No timer. go/buildstep and delivery/provided.go are untouched.

Quick or thorough. Quick: a hand tool in the checker to ask a lost check again. Thorough, chosen: here in mesh-sdk, so every asker of the build seats (the checker and the builder) is covered.

Tests. A section of the asker's unit test (a deaf watch, nudged by another build module and then its own; a watch that closes). Counts unchanged: 1682 unit, 42 integration.

Pushed-by: fix-lost@shanks
Reviewed-by: rev-l2@shanks at f91340fe82

Delivery group fix/lost-check, with mesh-delivery fix/lost-check. **Symptom.** mesh-catalog #553's verdict stayed running after its step mvsgthyjed5786 passed on shanks at 19:09:31Z: the watch of that one step key, opened at 18:46:05Z, heard neither the step's start nor its end and never closed, so no bound ran and nothing would judge it. The same kind was met four times on 2026-10-28 (issue 734's kind). **Change (delivery/buildrun).** `HeardEnds` stands between `Asker` and each ask's watch. It is nudged at every step end of the same build module (`HearEnds`: one watch per steps state, updates only; one that closes is opened again, and left after 3 closes in a row that heard nothing) and at a reconnect; every waited ask then reads its step keys (`JetStreamAsks.AskSteps`, a read, not a watch). An ask's watch that closes is opened again, at most 3 times. No timer. go/buildstep and delivery/provided.go are untouched. **Quick or thorough.** Quick: a hand tool in the checker to ask a lost check again. Thorough, chosen: here in mesh-sdk, so every asker of the build seats (the checker and the builder) is covered. **Tests.** A section of the asker's unit test (a deaf watch, nudged by another build module and then its own; a watch that closes). Counts unchanged: 1682 unit, 42 integration. Pushed-by: fix-lost@shanks Reviewed-by: rev-l2@shanks at f91340fe82ef16601f40bc192d8ef5d87fe1f4f2
mesh-tools added 2 commits 2026-10-28 19:38:50 +00:00
mesh-catalog #553's verdict stayed running after its step passed on shanks
at 19:09:31Z on 2026-10-28: the watch of that one step key, opened at
18:46:05Z, heard neither the start nor the end and never closed. HeardEnds
stands between Asker and each ask's watch: nudged at each step end of the
same build module (HearEnds: one watch per steps state) and at a reconnect,
every waited ask reads its keys now; a watch that closes is opened again, at
most 3 times. The checker and the builder both wait through it.

Tests: a section of the asker's test (deaf, nudged by another module and by
its own, a watch that closes); counts unchanged.
buildrun: open a steps watch again that closed having heard nothing, up to 3 closes in a row
mesh/delivery merged: source.main moved to novox/mesh-sdk@af08be36a27a
mesh/delivery-group group fix/lost-check merged: every member is merged
mesh/check checking f91340fe82ef on 6b43afa2ab38 | novox/mesh-sdk#121 in group fix/lost-check
f91340fe82
A watch that closed at once was left for good, so an ask whose own watch
went deaf was read only at a reconnect (review of fix/lost-check).
Author
Member

Delivery novox/mesh-sdk@f91340fe82ef — merged since 2026-10-28T20:41:00Z

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

Group fix/lost-check: novox/mesh-delivery@e7888024a8, novox/mesh-sdk@f91340fe82

Transitions

  • 2026-10-28 19:38 (new) → proposed (announced): novox/mesh-sdk#121's head announced
  • 2026-10-28 19:38 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; or the check gates no merge (check-gates-merge false)
  • 2026-10-28 20:41 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-sdk@f91340fe82ef` — **merged** since 2026-10-28T20:41:00Z **Source** — source.main moved to novox/mesh-sdk@af08be36a27a. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/lost-check`: novox/mesh-delivery@e7888024a826, novox/mesh-sdk@f91340fe82ef **Transitions** - 2026-10-28 19:38 (new) → proposed (announced): novox/mesh-sdk#121's head announced - 2026-10-28 19:38 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; or the check gates no merge (check-gates-merge false) - 2026-10-28 20:41 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 af08be36a2 into main 2026-10-28 20:40:58 +00:00
mesh-tools deleted branch fix/lost-check 2026-10-28 20:40:59 +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-sdk#121