Issue 1126 notes 99, 101. After ace's reboot today its mesh resolver stayed down for 90 minutes. The dnsmasq module's drop-in (modules/dnsmasq/files/mesh.conf, from issue 348) added After= and Wants=network-online.target, while the package's dnsmasq.service is Before=network-online.target and nss-lookup.target. That is an ordering cycle, so systemd dropped dnsmasq's start at boot (and its stop at shutdown). It was the first reboot since the drop-in came on 10-09.
Removed After= and Wants=network-online.target.
The address wait in ExecStartPre is now about 2 s instead of 80 s. The tunnel (wg-quick@mesh0) is ordered after the targets dnsmasq comes before, so a long wait only delayed the tunnel and everything after network-online by 80 s. Restart=on-failure, RestartSec=10s and StartLimitIntervalSec=0 bring dnsmasq up once the tunnel holds the address (issue 348's bind-interfaces need).
Comments say what really happens.
Quick vs thorough: quick, chosen; the thorough form (a whole unit with no Before=, ordered After=wg-quick@mesh0) is note 101.
Tests: TestDropInDoesNotOrderAfterATargetThePackagedUnitOrdersBefore and TestAddressWaitIsAtMostTwoSeconds, each failing on the old file; the 22 catalog checks pass.
Review: two rounds (round 1: the 80 s wait waited for the tunnel).
Not yet proven live: the next reboot of a resolver node (ace or novox).
Issue 1126 notes 99, 101. After ace's reboot today its mesh resolver stayed down for 90 minutes. The dnsmasq module's drop-in (modules/dnsmasq/files/mesh.conf, from issue 348) added After= and Wants=network-online.target, while the package's dnsmasq.service is Before=network-online.target and nss-lookup.target. That is an ordering cycle, so systemd dropped dnsmasq's start at boot (and its stop at shutdown). It was the first reboot since the drop-in came on 10-09.
- Removed After= and Wants=network-online.target.
- The address wait in ExecStartPre is now about 2 s instead of 80 s. The tunnel (wg-quick@mesh0) is ordered after the targets dnsmasq comes before, so a long wait only delayed the tunnel and everything after network-online by 80 s. Restart=on-failure, RestartSec=10s and StartLimitIntervalSec=0 bring dnsmasq up once the tunnel holds the address (issue 348's bind-interfaces need).
- Comments say what really happens.
Quick vs thorough: quick, chosen; the thorough form (a whole unit with no Before=, ordered After=wg-quick@mesh0) is note 101.
Tests: TestDropInDoesNotOrderAfterATargetThePackagedUnitOrdersBefore and TestAddressWaitIsAtMostTwoSeconds, each failing on the old file; the 22 catalog checks pass.
Review: two rounds (round 1: the 80 s wait waited for the tunnel).
Not yet proven live: the next reboot of a resolver node (ace or novox).
Reviewed-by: rev-dnsmasq@shanks at 3f552a17f6977fb807cadf4e4182be6eb6d6457b
Deliverynovox/mesh-catalog@3f552a17f697 — merged since 2026-10-28T16:26:03Z
Source — source.main moved to novox/mesh-catalog@683ce7e37f. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
Transitions
2026-10-28 16:01 (new) → proposed (announced): novox/mesh-catalog#550's head announced
2026-10-28 16:01 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 16:26 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@3f552a17f697` — **merged** since 2026-10-28T16:26:03Z
**Source** — source.main moved to novox/mesh-catalog@683ce7e37f29. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Transitions**
- 2026-10-28 16:01 (new) → proposed (announced): novox/mesh-catalog#550's head announced
- 2026-10-28 16:01 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 16:26 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`.
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 1126 notes 99, 101. After ace's reboot today its mesh resolver stayed down for 90 minutes. The dnsmasq module's drop-in (modules/dnsmasq/files/mesh.conf, from issue 348) added After= and Wants=network-online.target, while the package's dnsmasq.service is Before=network-online.target and nss-lookup.target. That is an ordering cycle, so systemd dropped dnsmasq's start at boot (and its stop at shutdown). It was the first reboot since the drop-in came on 10-09.
Quick vs thorough: quick, chosen; the thorough form (a whole unit with no Before=, ordered After=wg-quick@mesh0) is note 101.
Tests: TestDropInDoesNotOrderAfterATargetThePackagedUnitOrdersBefore and TestAddressWaitIsAtMostTwoSeconds, each failing on the old file; the 22 catalog checks pass.
Review: two rounds (round 1: the 80 s wait waited for the tunnel).
Not yet proven live: the next reboot of a resolver node (ace or novox).
Reviewed-by: rev-dnsmasq@shanks at
3f552a17f6Delivery
novox/mesh-catalog@3f552a17f697— merged since 2026-10-28T16:26:03ZSource — source.main moved to novox/mesh-catalog@683ce7e37f. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.