Teller: teller_end_ask ends one stale ask by hand (issue 774) #124

Merged
mesh-tools merged 1 commits from fix/merge-ask-ends-on-merge into main 2026-10-31 01:33:02 +00:00
Member

Issue 774 (L3), tools-are-how-a-module-is-spoken-to. The teller had no tool, so an ask whose key was never taken away (a merge ask after a merge without the Approve, a 7-day backup ask) held one of the router's places for its asker until it lapsed, and nothing could end it.

teller_end_ask {ask, why} names a router id, or a gate or assigner ask key (its latest asking). An open ask is cancelled at the router and marked ended, and the router's cancelled warrant then asks the next ask waiting for room. An ask waiting for room is dropped from the wait, and any other name is reported as left alone. It follows indexer_take_in's pattern: a tools bundle writes the teller's new state ends, and the teller watches it and answers by compare-and-set. The process still serves no request subject.

Quick fix vs thorough fix: this is the recovery tool. The cause is fixed in mesh-catalog (the gate takes away an ask of a finished delivery). The assigner's backup asks have the same gap, not fixed here (they need their asking count kept on the bus); this tool covers them meanwhile.

Tests: three table subtests in TestAnAsksKeyBecomesOneRouterAskAndDeletingItCancelsIt, and the manifest test now holds the tool, its state and its artifact. No new test functions. gofmt, go vet, go vet -tags integration and go test are clean.

Reviewer notes, not built: an end named by key can race a new asking of that key (name the router id when unsure); a false 'could not be cancelled' when the mark loses a revision race; a failed watch of ends stops the teller.

Controller research piece: none.

Reviewed-by: rev-asks@shanks at 17abe6af32

Issue 774 (L3), tools-are-how-a-module-is-spoken-to. The teller had no tool, so an ask whose key was never taken away (a merge ask after a merge without the Approve, a 7-day backup ask) held one of the router's places for its asker until it lapsed, and nothing could end it. teller_end_ask {ask, why} names a router id, or a gate or assigner ask key (its latest asking). An open ask is cancelled at the router and marked ended, and the router's cancelled warrant then asks the next ask waiting for room. An ask waiting for room is dropped from the wait, and any other name is reported as left alone. It follows indexer_take_in's pattern: a tools bundle writes the teller's new state ends, and the teller watches it and answers by compare-and-set. The process still serves no request subject. Quick fix vs thorough fix: this is the recovery tool. The cause is fixed in mesh-catalog (the gate takes away an ask of a finished delivery). The assigner's backup asks have the same gap, not fixed here (they need their asking count kept on the bus); this tool covers them meanwhile. Tests: three table subtests in TestAnAsksKeyBecomesOneRouterAskAndDeletingItCancelsIt, and the manifest test now holds the tool, its state and its artifact. No new test functions. gofmt, go vet, go vet -tags integration and go test are clean. Reviewer notes, not built: an end named by key can race a new asking of that key (name the router id when unsure); a false 'could not be cancelled' when the mark loses a revision race; a failed watch of ends stops the teller. Controller research piece: none. Reviewed-by: rev-asks@shanks at 17abe6af32ce7e19d19783a83a6c92f95fdd9392
mesh-tools added 1 commit 2026-10-31 01:21:09 +00:00
Teller: teller_end_ask ends one stale ask by hand, so an ask whose key is never taken away cannot hold the router's room for a day (issue 774)
mesh/delivery merged: source.main moved to novox/mesh-delivery@af0fd83aec09
mesh/delivery-group group fix/merge-ask-ends-on-merge merged: every member is merged
mesh/check checking 17abe6af32ce on af0fd83aec09 | novox/mesh-delivery#124 in group fix/merge-ask-ends-on-merge
17abe6af32
On 2026-10-31 two merge asks of pull requests merged by another path held two of
the router's three places for the teller and a placement ask was refused for want
of room. The gate's fix ends such asks by itself; this tool is the recovery for any
ask that still outlives its question: it cancels the open ask at the router, or
drops one waiting for room, by its router id or its key, and logs who and why. The
tools bundle asks through the teller's new state ends, as indexer_take_in does.
Author
Member

Delivery novox/mesh-delivery@17abe6af32ce — merged since 2026-10-31T01:33:06Z

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

Group fix/merge-ask-ends-on-merge: novox/mesh-catalog@fdb8deea4c, novox/mesh-delivery@17abe6af32

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

Transitions

  • 2026-10-31 01:21 (new) → proposed (announced): novox/mesh-delivery#124's head announced
  • 2026-10-31 01:21 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-31 01:33 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-delivery@17abe6af32ce` — **merged** since 2026-10-31T01:33:06Z **Source** — source.main moved to novox/mesh-delivery@af0fd83aec09. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/merge-ask-ends-on-merge`: novox/mesh-catalog@fdb8deea4c9e, novox/mesh-delivery@17abe6af32ce - composed together: pass — the checker's verdict at the members' heads (22ac8bbf9c36) **Transitions** - 2026-10-31 01:21 (new) → proposed (announced): novox/mesh-delivery#124's head announced - 2026-10-31 01:21 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-31 01:33 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 af0fd83aec into main 2026-10-31 01:33:02 +00:00
mesh-tools deleted branch fix/merge-ask-ends-on-merge 2026-10-31 01:33:02 +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/mesh-delivery#124