Keep a machine that does not resolve on the private network and in the names, so it is refused alone (issue 1833) #68

Merged
mesh-tools merged 2 commits from fix/1833-one-machine-alone into main 2026-10-22 16:10:23 +00:00
Member

Issue 1833 (critical): one machine whose own modules could not be resolved (2026-10-22: novox, 'nothing provides "document-server"') left the private network uncomposable ('this mesh has no hub'), so no machine's declaration composed and every send was held.

Delivery group fix/1833-one-machine-alone: mesh-sdk and mesh-controller (which pins this head).

  • go/compose/network.go: network() and onTheNetwork() keep a machine whose set does not resolve when its place has a key and an address (its endpoint, site and hub role carried over), so the others keep their tunnel to it, its names and its addresses in their packet filters; only its own declaration is refused (1833/AC1, AC2). A machine with no place is left off and refused alone (AC3). A network that cannot be composed from what remains still fails as today (AC4).
  • Tests in go/compose/one_machine_alone_test.go, one per criterion, plus the names and filter case with a failure the unchecked pass also refuses; four older tests clear a key so they still check the case that is left uncounted.

Try: build-1792675653886663508 passed at bd7731f3.
Found by the review and queued: issue 1848 (a refused machine's logins, zones and seat claims).

Reviewed-by: reviewer-1833@shanks at bd7731f358
Pushed-by: fix-1833@shanks

Issue 1833 (critical): one machine whose own modules could not be resolved (2026-10-22: novox, 'nothing provides "document-server"') left the private network uncomposable ('this mesh has no hub'), so no machine's declaration composed and every send was held. Delivery group `fix/1833-one-machine-alone`: mesh-sdk and mesh-controller (which pins this head). - go/compose/network.go: `network()` and `onTheNetwork()` keep a machine whose set does not resolve when its place has a key and an address (its endpoint, site and hub role carried over), so the others keep their tunnel to it, its names and its addresses in their packet filters; only its own declaration is refused (1833/AC1, AC2). A machine with no place is left off and refused alone (AC3). A network that cannot be composed from what remains still fails as today (AC4). - Tests in go/compose/one_machine_alone_test.go, one per criterion, plus the names and filter case with a failure the unchecked pass also refuses; four older tests clear a key so they still check the case that is left uncounted. Try: build-1792675653886663508 passed at bd7731f3. Found by the review and queued: issue 1848 (a refused machine's logins, zones and seat claims). Reviewed-by: reviewer-1833@shanks at bd7731f3588cf336620526b032bbfe9867f7837e Pushed-by: fix-1833@shanks
mesh-tools added 2 commits 2026-10-22 13:47:35 +00:00
A machine whose own set could not be resolved was left off the private network; when it was the hub, the network
could not be composed and every machine's declaration failed. Its placement (key and address) is its last good place
and does not change when its modules fail, so it stays on the network and only its own declaration is refused. A
refused machine with no place is left off, and a network that cannot be composed from what remains still fails.
Count a machine that does not resolve and holds a place as on the network for its name and the mesh's sources too (issue 1833)
mesh/repo-check head bd7731f3588c merged into trunk 5652312f09d2 beside mesh-controller#437@28a278c1 — pass: its merge-check.sh passed, each part in its to…
mesh/merge-gate head bd7731f3588c merged into trunk 5652312f09d2 — pass: group fix/1833-one-machine-alone composed: every machine composes with the change …
mesh/delivery delivered
mesh/delivery-group group fix/1833-one-machine-alone delivered: every member is delivered
mesh/check failed: unit: ..test: node:internal/modules/esm/resolve:241 | bd7731f3588c on 4fac7810a1e4 | unit 1634 run, 0 kept, 3 skipped | integration…
bd7731f358
The tunnel kept such a machine while the names and the packet filter's sources from the mesh, read from their own
unchecked resolve, dropped it when that pass refused it too (a seat claimed twice): every other machine was sent the
hub as a peer without its name or its address. onTheNetwork keeps it by the same rule as network().
Author
Member

Delivery novox/mesh-sdk@bd7731f3588c — delivered since 2026-10-22T16:38:22Z

Delivery plan — builds mesh-sdk (+41 dependent(s)) → ace, g14, novox, shanks; no bus step; 9 wait(s) for a person

  • tier 0: mesh-sdk
  • tier 1: mesh-tools
  • tier 2: audit-logger, baserow, bazarr, bookshelf, confluence, gitea, gitlab, grafana, home-assistant, icecast, influxdb, jackett, jira, kometa, lab, letta, lidarr, mailu, mesh-catalog, minio, model-usage, mongodb, mosquitto, mssql, netcheck, nextcloud, nftables, nodered, ombi, openai-consumer, radarr, redis, route-adapter, searxng, showcase, sonarr, tautulli, umami, unifi, zsh
  • ace: receives baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh; waits for a person: mssql, nftables
  • g14: receives netcheck, zsh; waits for a person: nftables
  • novox: receives gitea, mesh-catalog, netcheck, nextcloud, umami, zsh; waits for a person: mailu, minio, mongodb, mssql, nftables
  • shanks: receives lab, netcheck, zsh; waits for a person: nftables
  • baserow keeps data (ADR 0233): what it holds is backed up before it moves
  • bazarr keeps data (ADR 0233): what it holds is backed up before it moves
  • bookshelf keeps data (ADR 0233): what it holds is backed up before it moves
  • gitea provides npm-package-registry, git, gitea-read, forge-account: its consumers are sent again after it
  • gitea keeps data (ADR 0233): what it holds is backed up before it moves
  • grafana keeps data (ADR 0233): what it holds is backed up before it moves
  • home-assistant keeps data (ADR 0233): what it holds is backed up before it moves
  • icecast keeps data (ADR 0233): what it holds is backed up before it moves
  • influxdb provides influxdb-api: its consumers are sent again after it
  • influxdb keeps data (ADR 0233): what it holds is backed up before it moves
  • jackett provides jackett-api: its consumers are sent again after it
  • jackett keeps data (ADR 0233): what it holds is backed up before it moves
  • kometa keeps data (ADR 0233): what it holds is backed up before it moves
  • lab keeps data (ADR 0233): what it holds is backed up before it moves
  • lidarr provides lidarr-api: its consumers are sent again after it
  • lidarr keeps data (ADR 0233): what it holds is backed up before it moves
  • mailu waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
  • mailu provides smtp: its consumers are sent again after it
  • mailu keeps data (ADR 0233): what it holds is backed up before it moves
  • minio waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
  • minio provides s3-bucket: its consumers are sent again after it
  • minio keeps data (ADR 0233): what it holds is backed up before it moves
  • mongodb waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
  • mongodb provides mongodb-database: its consumers are sent again after it
  • mongodb keeps data (ADR 0233): what it holds is backed up before it moves
  • mosquitto provides mqtt-topic: its consumers are sent again after it
  • mosquitto keeps data (ADR 0233): what it holds is backed up before it moves
  • mssql waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
  • mssql provides mssql-database: its consumers are sent again after it
  • mssql keeps data (ADR 0233): what it holds is backed up before it moves
  • nextcloud keeps data (ADR 0233): what it holds is backed up before it moves
  • nftables waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends
  • nodered keeps data (ADR 0233): what it holds is backed up before it moves
  • ombi keeps data (ADR 0233): what it holds is backed up before it moves
  • radarr provides radarr-api: its consumers are sent again after it
  • radarr keeps data (ADR 0233): what it holds is backed up before it moves
  • redis provides redis-cache: its consumers are sent again after it
  • redis keeps data (ADR 0233): what it holds is backed up before it moves
  • searxng keeps data (ADR 0233): what it holds is backed up before it moves
  • sonarr provides sonarr-api: its consumers are sent again after it
  • sonarr keeps data (ADR 0233): what it holds is backed up before it moves
  • tautulli keeps data (ADR 0233): what it holds is backed up before it moves
  • umami provides analytics: its consumers are sent again after it
  • umami keeps data (ADR 0233): what it holds is backed up before it moves
  • unifi keeps data (ADR 0233): what it holds is backed up before it moves
  • grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, lab, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh is judged on its first machine

Group fix/1833-one-machine-alone: novox/mesh-controller@28a278c146, novox/mesh-sdk@bd7731f358

  • composed together: pass — every machine composes with the change as it did without (4 of 4 compose)

Machines

  • mesh-controller on every machine running it: sent
  • mesh-sdk on every machine running it: sent
  • build-agent on every machine running it: sent
  • mesh-tools on every machine running it: sent
  • audit-logger on every machine running it: sent
  • baserow on every machine running it: sent
  • bazarr on every machine running it: sent
  • bookshelf on every machine running it: sent
  • confluence on every machine running it: sent
  • gitea on every machine running it: sent
  • gitlab on every machine running it: sent
  • grafana on every machine running it: sent
  • home-assistant on every machine running it: sent
  • icecast on every machine running it: sent
  • influxdb on every machine running it: sent
  • jackett on every machine running it: sent
  • jira on every machine running it: sent
  • kometa on every machine running it: sent
  • lab on every machine running it: sent
  • letta on every machine running it: sent
  • lidarr on every machine running it: sent
  • mesh-catalog on every machine running it: sent
  • model-usage on every machine running it: sent
  • mosquitto on every machine running it: sent
  • netcheck on every machine running it: sent
  • nextcloud on every machine running it: sent
  • nodered on every machine running it: sent
  • ombi on every machine running it: sent
  • openai-consumer on every machine running it: sent
  • radarr on every machine running it: sent
  • redis on every machine running it: sent
  • route-adapter on every machine running it: sent
  • searxng on every machine running it: sent
  • showcase on every machine running it: sent
  • sonarr on every machine running it: sent
  • tautulli on every machine running it: sent
  • umami on every machine running it: sent
  • unifi on every machine running it: sent
  • zsh on every machine running it: sent

Transitions

  • 2026-10-22 13:47 (new) → proposed (announced): novox/mesh-sdk#68's head announced
  • 2026-10-22 13:52 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-22 13:52 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-22 16:12 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-22 16:12 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit
  • 2026-10-22 16:38 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says

The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-sdk@bd7731f3588c` — **delivered** since 2026-10-22T16:38:22Z **Delivery plan** — builds mesh-sdk (+41 dependent(s)) → ace, g14, novox, shanks; no bus step; 9 wait(s) for a person - tier 0: mesh-sdk - tier 1: mesh-tools - tier 2: audit-logger, baserow, bazarr, bookshelf, confluence, gitea, gitlab, grafana, home-assistant, icecast, influxdb, jackett, jira, kometa, lab, letta, lidarr, mailu, mesh-catalog, minio, model-usage, mongodb, mosquitto, mssql, netcheck, nextcloud, nftables, nodered, ombi, openai-consumer, radarr, redis, route-adapter, searxng, showcase, sonarr, tautulli, umami, unifi, zsh - ace: receives baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh; waits for a person: mssql, nftables - g14: receives netcheck, zsh; waits for a person: nftables - novox: receives gitea, mesh-catalog, netcheck, nextcloud, umami, zsh; waits for a person: mailu, minio, mongodb, mssql, nftables - shanks: receives lab, netcheck, zsh; waits for a person: nftables - baserow keeps data (ADR 0233): what it holds is backed up before it moves - bazarr keeps data (ADR 0233): what it holds is backed up before it moves - bookshelf keeps data (ADR 0233): what it holds is backed up before it moves - gitea provides npm-package-registry, git, gitea-read, forge-account: its consumers are sent again after it - gitea keeps data (ADR 0233): what it holds is backed up before it moves - grafana keeps data (ADR 0233): what it holds is backed up before it moves - home-assistant keeps data (ADR 0233): what it holds is backed up before it moves - icecast keeps data (ADR 0233): what it holds is backed up before it moves - influxdb provides influxdb-api: its consumers are sent again after it - influxdb keeps data (ADR 0233): what it holds is backed up before it moves - jackett provides jackett-api: its consumers are sent again after it - jackett keeps data (ADR 0233): what it holds is backed up before it moves - kometa keeps data (ADR 0233): what it holds is backed up before it moves - lab keeps data (ADR 0233): what it holds is backed up before it moves - lidarr provides lidarr-api: its consumers are sent again after it - lidarr keeps data (ADR 0233): what it holds is backed up before it moves - mailu waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends - mailu provides smtp: its consumers are sent again after it - mailu keeps data (ADR 0233): what it holds is backed up before it moves - minio waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends - minio provides s3-bucket: its consumers are sent again after it - minio keeps data (ADR 0233): what it holds is backed up before it moves - mongodb waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends - mongodb provides mongodb-database: its consumers are sent again after it - mongodb keeps data (ADR 0233): what it holds is backed up before it moves - mosquitto provides mqtt-topic: its consumers are sent again after it - mosquitto keeps data (ADR 0233): what it holds is backed up before it moves - mssql waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends - mssql provides mssql-database: its consumers are sent again after it - mssql keeps data (ADR 0233): what it holds is backed up before it moves - nextcloud keeps data (ADR 0233): what it holds is backed up before it moves - nftables waits for a person: its policy records (module) — unless on a machine its move recreates none of its containers and moves none of its data, which the walk judges and then sends - nodered keeps data (ADR 0233): what it holds is backed up before it moves - ombi keeps data (ADR 0233): what it holds is backed up before it moves - radarr provides radarr-api: its consumers are sent again after it - radarr keeps data (ADR 0233): what it holds is backed up before it moves - redis provides redis-cache: its consumers are sent again after it - redis keeps data (ADR 0233): what it holds is backed up before it moves - searxng keeps data (ADR 0233): what it holds is backed up before it moves - sonarr provides sonarr-api: its consumers are sent again after it - sonarr keeps data (ADR 0233): what it holds is backed up before it moves - tautulli keeps data (ADR 0233): what it holds is backed up before it moves - umami provides analytics: its consumers are sent again after it - umami keeps data (ADR 0233): what it holds is backed up before it moves - unifi keeps data (ADR 0233): what it holds is backed up before it moves - grants step: if this changes what the bus's user list says (a new tool, subject or user), novox is sent that list alone, every build there kept, before baserow, bazarr, bookshelf, grafana, home-assistant, icecast, influxdb, jackett, kometa, lab, letta, lidarr, mosquitto, netcheck, nodered, ombi, radarr, redis, searxng, sonarr, tautulli, unifi, zsh is judged on its first machine **Group** `fix/1833-one-machine-alone`: novox/mesh-controller@28a278c1462a, novox/mesh-sdk@bd7731f3588c - composed together: pass — every machine composes with the change as it did without (4 of 4 compose) **Machines** - mesh-controller on every machine running it: sent - mesh-sdk on every machine running it: sent - build-agent on every machine running it: sent - mesh-tools on every machine running it: sent - audit-logger on every machine running it: sent - baserow on every machine running it: sent - bazarr on every machine running it: sent - bookshelf on every machine running it: sent - confluence on every machine running it: sent - gitea on every machine running it: sent - gitlab on every machine running it: sent - grafana on every machine running it: sent - home-assistant on every machine running it: sent - icecast on every machine running it: sent - influxdb on every machine running it: sent - jackett on every machine running it: sent - jira on every machine running it: sent - kometa on every machine running it: sent - lab on every machine running it: sent - letta on every machine running it: sent - lidarr on every machine running it: sent - mesh-catalog on every machine running it: sent - model-usage on every machine running it: sent - mosquitto on every machine running it: sent - netcheck on every machine running it: sent - nextcloud on every machine running it: sent - nodered on every machine running it: sent - ombi on every machine running it: sent - openai-consumer on every machine running it: sent - radarr on every machine running it: sent - redis on every machine running it: sent - route-adapter on every machine running it: sent - searxng on every machine running it: sent - showcase on every machine running it: sent - sonarr on every machine running it: sent - tautulli on every machine running it: sent - umami on every machine running it: sent - unifi on every machine running it: sent - zsh on every machine running it: sent **Transitions** - 2026-10-22 13:47 (new) → proposed (announced): novox/mesh-sdk#68's head announced - 2026-10-22 13:52 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-22 13:52 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-22 16:12 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-22 16:12 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit - 2026-10-22 16:38 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
mesh-tools merged commit 4fac7810a1 into main 2026-10-22 16:10:23 +00:00
mesh-tools deleted branch fix/1833-one-machine-alone 2026-10-22 16:10:24 +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-sdk#68