fix(lab): select hsflowd veth by global-scope address (flow-live root cause) #259
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!259
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/hsflowd-veth-select"
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?
Why flow-live never fired
flow-sflow-livedrives real hsflowd (mod_pcap) sampling the victim vethinto real sFlow v5, then the production collector + detector must fire. It has
been failing (
no live volumetric detection fired, emptyhsflowd.log) and wasquarantined with
continue-on-error(#88) as "environmental". It isn't.spawn_hsflowddiscovered the veth as the first non-lo/ifblink fromip link show. A fresh netns on the CI runner auto-creates tunnel stubs(
sit0/tunl0/ip6tnl0) that sort ahead of the veth and carry no address.mod_pcapon a stub samples zero packets, hsflowd exports no flow samples, thedetector never opens, and the
file-presentprobe times out.This is the same bug family already fixed twice this cycle:
io/mod.rs, #256/#258) - select by IPv4 addresstests/interop.rs, #254) - select byscope globalThe tell: in this same scenario step 1 (
trafficgen send) passes (fixedselector) while step 2 (hsflowd) fails (unfixed selector). Same netns, same
stubs, opposite outcomes.
Change
spawn_hsflowdnow selects the veth viaip -o addr show scope global,skipping address-less stubs.
scope global(not-4) also covers a v6-onlynetns, avoiding the syncookie-v6 regression
-4caused last time.hsflowd-iface.logdiagnostic (chosen iface + the addresses pickedfrom) under the node scratch dir. The failure log-dump globs
*.log, so thenext run shows exactly which iface
mod_pcapsampled - making a wrong-ifacepick distinguishable from a hsflowd-not-exporting problem.
Quarantine stays this PR
flow-live keeps
continue-on-error: true. Lab gates are sequential fail-stop;a hard failure there would skip the whole tail (deception-resilience,
syncookie x2, rtbh, bird-gen, flowspec x2, armed x3, xdp x3). Un-quarantine only
after a lab run is observed passing flow-live.
Local:
cargo build/clippy -p blackwall-labclean. The gate itself needs theprivileged lab runner (root + netns + hsflowd).
vxfemboy referenced this pull request2026-08-03 21:48:37 +00:00