The kernel module loads tun at boot and keeps the running kernel's modules across an upgrade; mesh-build-image takes no ask where it cannot build (group fix/ace-tun) #543

Merged
mesh-tools merged 2 commits from fix/ace-tun into main 2026-10-28 13:07:43 +00:00
Member

Delivery group fix/ace-tun (mesh-sdk, mesh-catalog). Issue 1126 notes 68-69.

  • modules/kernel: /etc/modules-load.d/mesh-kernel.conf loads tun at every boot; the package kernel-modules-hook (and its linux-modules-cleanup.service, at boot) keeps the running kernel's modules across a kernel upgrade, so a long-running node can still load a module after one (ace had lost 6.18.54's modules).
  • modules/mesh-build-image: its check opens /dev/net/tun; any refusal of its check makes the node not eligible (capacity 0, the reason in health and in its capacity record), and a changed result wakes the puller; pins mesh-sdk 1618837.

Quick vs thorough: quick is a reboot of ace (one instance); thorough built: the kernel keeps modules across upgrades and every refusal routes asks elsewhere instead of failing them.
Needs the operator: ace takes no image build until it reboots (its tun module cannot load before).
Subtask kept: a check cancelled by a shutdown should not mark a node ineligible (note 69).
Tests: kernel manifest test; mesh-build-image TestHealthIsUnhealthyWithoutWhatABuildNeeds and TestAPulledImageAskCopiesThenBuilds rows, each failing first; the 22 catalog checks pass.

Reviewed-by: rev-ace-tun@shanks at 86d37a14e7

Delivery group fix/ace-tun (mesh-sdk, mesh-catalog). Issue 1126 notes 68-69. - modules/kernel: /etc/modules-load.d/mesh-kernel.conf loads tun at every boot; the package kernel-modules-hook (and its linux-modules-cleanup.service, at boot) keeps the running kernel's modules across a kernel upgrade, so a long-running node can still load a module after one (ace had lost 6.18.54's modules). - modules/mesh-build-image: its check opens /dev/net/tun; any refusal of its check makes the node not eligible (capacity 0, the reason in health and in its capacity record), and a changed result wakes the puller; pins mesh-sdk 1618837. Quick vs thorough: quick is a reboot of ace (one instance); thorough built: the kernel keeps modules across upgrades and every refusal routes asks elsewhere instead of failing them. Needs the operator: ace takes no image build until it reboots (its tun module cannot load before). Subtask kept: a check cancelled by a shutdown should not mark a node ineligible (note 69). Tests: kernel manifest test; mesh-build-image TestHealthIsUnhealthyWithoutWhatABuildNeeds and TestAPulledImageAskCopiesThenBuilds rows, each failing first; the 22 catalog checks pass. Reviewed-by: rev-ace-tun@shanks at 86d37a14e7ab8b6dc3393cd65bef08bad23024c9
mesh-tools added 2 commits 2026-10-28 11:51:26 +00:00
An image build node up 24 days had lost its running kernel's modules to a linux-lts upgrade, so tun
could not load and every RUN line failed in pasta. mesh-build-image now proves the tun device and,
whatever its look refuses, judges its node not eligible (capacity 0 with the reason), so the asks go
to a node that can build them. The kernel module loads tun at boot and declares kernel-modules-hook,
which keeps the running kernel's modules across an upgrade. Needs mesh-sdk fix/ace-tun (Puller.Eligible).
mesh-build-image: pin mesh-sdk 1618837, the group's head (fix/ace-tun)
mesh/delivery merged: source.main moved to novox/mesh-catalog@69056948bfa8
mesh/delivery-group group fix/ace-tun merged: every member is merged
mesh/check pass 86d37a14e7ab on 9cdac09ad962 | carried from 25f615456423 | unit 2293 run, 3984 kept, 16 skipped | integration 2331 run, 4031 kept, 24 …
86d37a14e7
Author
Member

Delivery novox/mesh-catalog@86d37a14e7ab — merged since 2026-10-28T13:07:44Z

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

Group fix/ace-tun: novox/mesh-catalog@86d37a14e7, novox/mesh-sdk@1618837ea9

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

Transitions

  • 2026-10-28 11:51 (new) → proposed (announced): novox/mesh-catalog#543's head announced
  • 2026-10-28 11:51 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 13:07 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@86d37a14e7ab` — **merged** since 2026-10-28T13:07:44Z **Source** — source.main moved to novox/mesh-catalog@69056948bfa8. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/ace-tun`: novox/mesh-catalog@86d37a14e7ab, novox/mesh-sdk@1618837ea9fe - composed together: pass — the checker's verdict at the members' heads (a070dc3d0af3) **Transitions** - 2026-10-28 11:51 (new) → proposed (announced): novox/mesh-catalog#543's head announced - 2026-10-28 11:51 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 13:07 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 69056948bf into main 2026-10-28 13:07:43 +00:00
mesh-tools deleted branch fix/ace-tun 2026-10-28 13:07:43 +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#543