fix(drill): delete every listener — refused-vs-dropped already answers it #23
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#23
Loading…
Reference in a new issue
No description provided.
Delete branch "drill/listenerless-probes"
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?
Follow-up to #22. That PR made the in-box reads hang-proof; this one removes the reason the run could hang at all.
The listener was never load-bearing
curl's exit code already separates the two cases the audit cares about:
A closed port is a perfectly good target: it answers, or it doesn't. The listener added nothing the exit code didn't already say — and it is precisely what wedged runs 1 and 4, because a backgrounded process inside an
incus execsession holds that session open no matter what you redirect. The host-side one also leaked apython3 -m http.serveron every run.All three listeners are gone. The drill now starts no background process anywhere (
grep -cE 'http\.server|nohup|&$'→ 0).Sharper findings, not just safer plumbing
tcp dropped + icmp replyingis partial isolation — a real finding that the old listener-based probe would have reported as a clean pass.:53, by design — that carve-out is what makes egress DNS work). Probing an unserved port and reading refused-vs-dropped is both safer and more honest about what the firewall must prevent.Merge, then one clean end-to-end run
The drill reinstalls claudebox from
mainat the start of every run, so a pull is what brings this down. This should be the all-green run that closes #15: A3 answered, B3 settled (transient vs broken), and 49/49.🤖 Generated with Claude Code