Issue 1748: builds on a machine with its own resolver fail on lookup ... i/o timeout while the first mesh resolver is silent, because the file's ~2 s wait is shorter than the resolver's pass. Group fix/1748-resolver-wait with mesh-host (either merge order).
Builds design 50 §2 (line 73) and 50-milestones/resolver-wait §1 and §4 (hq #587), from ADR 0678: the resolvers and kept facts of modules/systemd-resolved/module.json give options timeout:3 attempts:2 edns0, the one own server unchanged; the manifest test holds both facts and the guard test's literal follows. Uplink files keep timeout:1 (§2).
Quick fix: none deliverable while the first resolver is down. Thorough (this, with ADR 0678): every own-resolver file outlasts the pass.
Tests: systemd-resolved manifest test (fails without the change); checks/* pass; re-created judge: no verdict difference change/trunk.
Reviewed-by: mesh-code-reviewer@shanks at d22a7f3a41
Issue 1748: builds on a machine with its own resolver fail on `lookup ... i/o timeout` while the first mesh resolver is silent, because the file's ~2 s wait is shorter than the resolver's pass. Group fix/1748-resolver-wait with mesh-host (either merge order).
Builds design 50 §2 (line 73) and 50-milestones/resolver-wait §1 and §4 (hq #587), from ADR 0678: the `resolvers` and `kept` facts of `modules/systemd-resolved/module.json` give `options timeout:3 attempts:2 edns0`, the one own server unchanged; the manifest test holds both facts and the guard test's literal follows. Uplink files keep timeout:1 (§2).
Quick fix: none deliverable while the first resolver is down. Thorough (this, with ADR 0678): every own-resolver file outlasts the pass.
Acceptance 1748/AC1-AC5 (issue 1748 note 39); AC4-AC5 live.
Tests: systemd-resolved manifest test (fails without the change); checks/* pass; re-created judge: no verdict difference change/trunk.
Reviewed-by: mesh-code-reviewer@shanks at d22a7f3a412f0d131313ac22ecc0af02a156f812
The resolver file of systemd-resolved (resolvers and kept facts) carries options timeout:3 attempts:2 edns0 in place of timeout:1; manifest test asserts both facts, guard test's literal follows.
Builds: design 50 resolver-wait §1, §4 (and §2 of the main file, line 73)
Deliverynovox/mesh-catalog@d22a7f3a412f — merged since 2026-11-12T17:52:46Z
Source — source.main moved to novox/mesh-catalog@a60728e6f0. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
2026-11-12 17:20 (new) → proposed (announced): novox/mesh-catalog#671's head announced
2026-11-12 17:20 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-11-12 17:52 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@d22a7f3a412f` — **merged** since 2026-11-12T17:52:46Z
**Source** — source.main moved to novox/mesh-catalog@a60728e6f09d. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `fix/1748-resolver-wait`: novox/mesh-catalog@d22a7f3a412f, novox/mesh-host@8dc186944e7d
**Transitions**
- 2026-11-12 17:20 (new) → proposed (announced): novox/mesh-catalog#671's head announced
- 2026-11-12 17:20 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-11-12 17:52 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: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Issue 1748: builds on a machine with its own resolver fail on
lookup ... i/o timeoutwhile the first mesh resolver is silent, because the file's ~2 s wait is shorter than the resolver's pass. Group fix/1748-resolver-wait with mesh-host (either merge order).Builds design 50 §2 (line 73) and 50-milestones/resolver-wait §1 and §4 (hq #587), from ADR 0678: the
resolversandkeptfacts ofmodules/systemd-resolved/module.jsongiveoptions timeout:3 attempts:2 edns0, the one own server unchanged; the manifest test holds both facts and the guard test's literal follows. Uplink files keep timeout:1 (§2).Quick fix: none deliverable while the first resolver is down. Thorough (this, with ADR 0678): every own-resolver file outlasts the pass.
Acceptance 1748/AC1-AC5 (issue 1748 note 39); AC4-AC5 live.
Tests: systemd-resolved manifest test (fails without the change); checks/* pass; re-created judge: no verdict difference change/trunk.
Reviewed-by: mesh-code-reviewer@shanks at
d22a7f3a41Delivery
novox/mesh-catalog@d22a7f3a412f— merged since 2026-11-12T17:52:46ZSource — source.main moved to novox/mesh-catalog@a60728e6f0. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
fix/1748-resolver-wait: novox/mesh-catalog@d22a7f3a41, novox/mesh-host@8dc186944eTransitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.