A machine's mesh name has no IPv6 address rather than no name (hq issue 262) #71

Merged
mesh-admin merged 1 commits from fix/a-mesh-name-has-no-ipv6-address-rather-than-no-name into main 2026-10-05 20:07:33 +00:00
Contributor

The one resolver answers machine names only via address=/<fqdn>/<ip> with local=/internal/, so an AAAA query gets NXDOMAIN. musl (Alpine) treats that as final: n8n on ace crash-loops with getaddrinfo ENOTFOUND novox.internal since it was restarted onto the one resolver. Adds host-record=<fqdn>,<ip> per machine, which makes AAAA answer NOERROR/no data — what the per-machine resolvers gave from /etc/hosts before. Reproduced and verified with a throwaway dnsmasq 2.93. Controller catalogue tests pass; module check ok.

The one resolver answers machine names only via `address=/<fqdn>/<ip>` with `local=/internal/`, so an AAAA query gets NXDOMAIN. musl (Alpine) treats that as final: n8n on ace crash-loops with `getaddrinfo ENOTFOUND novox.internal` since it was restarted onto the one resolver. Adds `host-record=<fqdn>,<ip>` per machine, which makes AAAA answer NOERROR/no data — what the per-machine resolvers gave from /etc/hosts before. Reproduced and verified with a throwaway dnsmasq 2.93. Controller catalogue tests pass; module check ok.
mesh-admin added 1 commit 2026-10-05 20:07:30 +00:00
The resolver answered a machine's name only by wildcard, which says there is no such name when
asked for an IPv6 address; musl reads that as final, so Alpine containers could not find a
machine at all. A host record per machine answers that the name exists and has none, as the
hosts file the per-machine resolvers read used to.
mesh-admin merged commit 20603b63e6 into main 2026-10-05 20:07:33 +00:00
mesh-admin deleted branch fix/a-mesh-name-has-no-ipv6-address-rather-than-no-name 2026-10-05 20:07:33 +00:00
Author
Contributor

Delivery novox/mesh-catalog@20603b63e673 — held since 2026-10-06T23:05:28Z

Held for a person: merged without a passing check: only a person decides that it goes on — mesh-delivery.release with why lets it go on.

Delivery plan — builds dnsmasq, sent nowhere; no bus step; 2 wait(s) for a person

  • tier 0: dnsmasq
  • ace: waits for a person: dnsmasq
  • novox: waits for a person: dnsmasq
  • dnsmasq waits for a person: its policy records (module)
  • dnsmasq provides wildcard-resolution: its consumers are sent again after it

Transitions

  • 2026-10-06 23:05 (new) → proposed (announced): novox/mesh-catalog#71 merged; its head was not heard by this owner, so it is made from the forge's word
  • 2026-10-06 23:05 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on

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

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@20603b63e673` — **held** since 2026-10-06T23:05:28Z Held for a person: merged without a passing check: only a person decides that it goes on — `mesh-delivery.release` with why lets it go on. **Delivery plan** — builds dnsmasq, sent nowhere; no bus step; 2 wait(s) for a person - tier 0: dnsmasq - ace: waits for a person: dnsmasq - novox: waits for a person: dnsmasq - dnsmasq waits for a person: its policy records (module) - dnsmasq provides wildcard-resolution: its consumers are sent again after it **Transitions** - 2026-10-06 23:05 (new) → proposed (announced): novox/mesh-catalog#71 merged; its head was not heard by this owner, so it is made from the forge's word - 2026-10-06 23:05 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
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#71