Skip to content

atenet/dns: (Not Intended to Merge) manual CoreDNS rcode harness - #1038

Draft
Yuan Gao (ygao-g) wants to merge 2 commits into
agent-substrate:mainfrom
ygao-g:atenet-dns-manual-test
Draft

atenet/dns: (Not Intended to Merge) manual CoreDNS rcode harness#1038
Yuan Gao (ygao-g) wants to merge 2 commits into
agent-substrate:mainfrom
ygao-g:atenet-dns-manual-test

Conversation

@ygao-g

@ygao-g Yuan Gao (ygao-g) commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator

Test signals only — not intended to merge.

Stacked on #874, whose commit appears in this diff until it merges.

#874's unit test pins the rendered zone, but nothing in the tree exercises
CoreDNS itself, so the rcode behavior the PR is about goes unchecked. There is
no way to close that in a Go test here — neither coredns nor miekg/dns is
vendored, and no test in the repo runs a container. This is the reference
procedure instead:

DOCKER="limactl shell docker-nested docker" hack/dns-manual-test.sh

It renders the real zone via the test binary, serves it with the pinned
coredns/coredns:1.11.1, and checks the rcode for A, AAAA, HTTPS, SRV, a name
in the zone that is not an actor, and a malformed name — plus an Alpine
getent ahosts for the musl path.

Passing --corefile a zone rendered from before the fix makes the run a
negative control: AAAA SERVFAILs and getent stops resolving, while plain
dig A still succeeds. That last combination is exactly the failure #874
describes.

Before, the actor zone answered A queries and failed everything else --
AAAA for a valid actor, and any name in the zone that is not an actor.
A failure reads as a temporary error rather than an answer, so clients
retry it and then give up on the name; Alpine actors could not resolve
each other at all, even on an IPv4-only cluster. After, those queries
return a correct empty answer, and one that resolvers can cache.

A unit test pins the whole rendered zone as a literal, so editing the
name pattern or the suffix fails there rather than passing silently.
Not intended to merge. The unit test in agent-substrate#874 pins the rendered zone but
nothing exercises CoreDNS, so this serves that zone with the pinned
coredns/coredns:1.11.1 and checks the rcode returned for A, AAAA, HTTPS,
SRV, a name in the zone that is not an actor, and a malformed one, plus
an Alpine getent for the musl path.

Pointing --corefile at a zone rendered before the fix turns the run into
a negative control: the AAAA case SERVFAILs and getent stops resolving,
while plain dig A still succeeds.
@ygao-g Yuan Gao (ygao-g) changed the title atenet/dns: manual CoreDNS rcode harness (test signals only) atenet/dns: (Not Intended to Merge) manual CoreDNS rcode harness Aug 18, 2026
@ygao-g
Yuan Gao (ygao-g) marked this pull request as draft August 18, 2026 19:24
@ygao-g Yuan Gao (ygao-g) added the DO NOT MERGE This PR must not be merged yet. label Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/network DO NOT MERGE This PR must not be merged yet.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants