fix(drill): the NIC inside a VM is enp5s0, not eth0 — read the address by subnet #28
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#28
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/drill-nic-name"
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?
A3 — the one probe this whole audit exists for — has never fired, in six runs. It was never the network.
The profile names the device
eth0. Inside a VM guest, predictable naming renames itenp5s0. So every address lookup the drill has used was hunting an interface that does not exist:/\(eth0\)$/→ never matchedip -4 -o addr show dev eth0→ also never matchedI fixed that symptom twice — first blaming
incus list's (genuinely non-regex) name filter, then a DHCP race — without ever questioning the interface name underneath both. The liveincus listoutput on the drill host saidenp5s0in plain text.The fix
Read the address from inside the box and select by subnet (
10.87.x, what claudenet hands out), not by interface name.docker0's172.17.xis the decoy; what the guest calls its NIC is the guest's business.Plus a guard A3 should always have had
If the peer and the source hold the same address, refuse to probe. Not hypothetical — clones were inheriting their source's machine-id, hence its DHCP lease, hence its address (fixed separately). So
archive → peerwas archive probing itself, and a cheerful "reachable" would have been reported as a sibling-isolation failure. A3 now refuses that measurement instead of lying about it.RUNS.mdtrap 4 is rewritten with the general lesson: when the same probe fails three different ways, stop patching the probe and go look at the thing itself.🤖 Generated with Claude Code