fix: a failed cold mint must say why; doctor gains DNS diagnosis and --pin-dns #34
No reviewers
Labels
No labels
blocked
blocker:ci-red
blocker:conflict
blocker:drill-pending
blocker:unrequested
bug
claimed
documentation
enhancement
epic
merge-next
needs-triage
ready
release
scope:cli
scope:drill
scope:host
scope:installer
scope:templates
scope:tiers
stale
state:addressing
state:bots-reviewing
state:building
state:needs-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: heavy-duty/box#34
Loading…
Reference in a new issue
No description provided.
Delete branch "drill/doctor-dns"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two cold mints in a row died with
cloud-init status: erroron a hostdoctor.shhad just certified clean. So the failure is reproducible, not transient, and my earlier "leftover mutations poisoned the network" theory is dead — the doctor disproved it in ten seconds, which is what it is for.claudebox newnow says what went wrongIt printed four hundred dots and the word
error. The reason was sitting in the box's own log and nobody was told the log existed — diagnosing it took three commands the user had to be handed. Now, on failure, it printscloud-init status --long, greps the fetch/resolve errors out of/var/log/cloud-init-output.log, and tells you the box is still up for inspection (a box that failed to build is evidence, not garbage). It also names the usual suspect: the host's resolver, with a pointer to #33.doctor.shgains the diagnosis, and the test/etc/resolv.confpoints at, and whether that is a CGNAT/Tailscale resolver the boxes inherit (#33). Flags it as DIRTY when it is.1.1.1.1by address? If yes, egress works and the fault is purely the inherited forwarder. That single probe separates "the network is broken" from "name resolution is broken", which is the distinction three runs have been confused by.--pin-dnsapplies #33's proposed fix so it can be tested rather than argued: dnsmasq then ignores the host's/etc/resolv.confentirely.The run that decides #33
If the cold mint now succeeds, #33 is confirmed and the fix belongs in
setup-host.shunconditionally. If it fails the same way,raw.dnsmasqis the wrong lever and #33 needs a different mechanism — and the doctor will have said so rather than leaving us to guess.🤖 Generated with Claude Code