dnsmasq starts at boot: its drop-in no longer orders after a target the package orders it before (issue 1126) #550

Merged
mesh-tools merged 1 commits from fix/dnsmasq-cycle into main 2026-10-28 16:26:01 +00:00
Member

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 3f552a17f6

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
mesh-tools added 1 commit 2026-10-28 16:01:32 +00:00
dnsmasq: the drop-in no longer orders after network-online.target and its address wait is 2 s at most (cycle dropped the start at boot, issue 1126)
mesh/delivery merged: source.main moved to novox/mesh-catalog@683ce7e37f29
mesh/check being carried to 3f552a17f697 on 683ce7e37f29 | from 3feeefc70f7c
3f552a17f6
Author
Member

Delivery novox/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`.
mesh-tools merged commit 683ce7e37f into main 2026-10-28 16:26:01 +00:00
mesh-tools deleted branch fix/dnsmasq-cycle 2026-10-28 16:26:02 +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#550