fix(deception): pin the deception-nft gate — select veth by IPv4, not link order #254
No reviewers
Labels
No labels
bug
deploy
documentation
duplicate
enhancement
good first issue
help wanted
invalid
pull-request
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
femboy/blackwall!254
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/deception-iface-select-by-ipv4"
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?
The
deception-nftlab gate has never passed in CI. With the new failure-log dump (#251) the cause is finally visible:Root cause.
first_non_loopback_iface()returned the first non-lolink. In the CI runner's container, a fresh netns auto-creates tunnel devices (sit0/tunl0/ip6tnl0) that sort ahead of the veth inip link showbut carry no address — so the helper returned a tunnel stub andfirst_ipv4_of()panicked. It passed on bare metal, whose netns holds onlylo+ the veth. Not a product bug; a test-harness iface-selection bug.Fix. Select the interface by scanning
ip -o -4 addr show— the veth is the only non-lointerface carrying an inet address, so tunnel stubs are skipped. Test-only change to the interop driver.Verified. Reproduced the selection difference directly: with a no-IP
dummy0sorted ahead of an addressed veth, the old logic picksdummy0(→ the panic), the new logic picks the veth.deception-nftpasses 2/2 locally; fmt + clippy clean. The other deception gates (resilience, syncookie) share the helper and gain the same robustness — they'd have hit this too once deception-nft stopped failing first.