Linux XDP client multi connection issues
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 4.8k
- Forks
- 698
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 35
Description
Describe the bug
When client secnetperf running with multi connection using XDP, some packets arrive at normal socket datapath and hit segfault.
Client hits here
https://github.com/microsoft/msquic/pull/4551/files/e2a3ad4c123cec85f648841d61a9eeceba49778d#r1768132268
Affected OS
- Windows
- Linux
- macOS
- Other (specify below)
Additional OS information
Ubuntu 24.04
MsQuic version
main
Steps taken to reproduce bug
2 Ubuntu 24.04 VMs on Hyper-V on same Azure host (nested VM)
server
./artifacts/bin/linux/x64_Debug_openssl3/secnetperf -exec:maxtput -io:epoll -pollidle:1000
client
./artifacts/bin/linux/x64_Debug_openssl3/secnetperf -target:$TARGET_IP -exec:maxtput -down:10s -ptput:1 -tcp:0 -trimout -watchdog:25000 -pconn:1 -pstream:1 -io:xdp -conns:100
Expected behavior
continue running until the workload ends.
Actual outcome
use epoll datapath and segfault
Additional details
When running with multi-connection, some packets arrive at normal socket datapath for some reason even though all packets are forcibly routed to AF_XDP socket by hack.
hypothesis
- the packets arrive at normal datapath are mixed with the ones arrive at AF_XDP socket, then break code.
- netvsc has bug?
- host layer bug?
- nested VM bug?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue with secnetperf on Ubuntu 24.04 using the server and client commands in the report, especially 100 connections with -io:xdp. Compare the XDP/AF_XDP and epoll datapaths and investigate the reported segfault when packets reach the normal socket path. Done means the multi-connection workload runs to completion without a crash, with the packet-path cause identified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, linux
- Domain
- networking, operating-systems
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100