Iperf3: connection is getting closed from the client side unexpectedly
- Dominant language
- C
- Stars
- 8.8k
- Forks
- 1.5k
- PR merge metrics
- No merged PRs in 30d
Description
_NOTE: The iperf3 issue tracker is for registering bugs, enhancement
requests, or submissions of code. It is not a means for asking
questions about building or using iperf3. Those are best directed
towards the Discussions section for this project at
https://github.com/esnet/iperf/discussions
or to the iperf3 mailing list at iperf-dev@googlegroups.com.
A list of frequently-asked questions
regarding iperf3 can be found at http://software.es.net/iperf/faq.html._
# Context
iperf3 commands are failing with the following error: `the client has unexpectedly closed the connection`.
* Version of iperf3: 3.17.1
* Hardware:
* Operating system (and distribution, if any): Azure Linux/CBL-Mariner and SUSE Linux
_Please note: iperf3 is supported on Linux, FreeBSD, and macOS.
Support may be provided on a best-effort basis to other UNIX-like
platforms. We cannot provide support for building and/or running
iperf3 on Windows, iOS, or Android._
* Other relevant information (for example, non-default compilers,
libraries, cross-compiling, etc.):
_Please fill out one of the "Bug Report" or "Enhancement Request"
sections, as appropriate. Note that submissions of bug fixes, new
features, etc. should be done as a pull request at
https://github.com/esnet/iperf/pulls_
# Bug Report
* Expected Behavior
The lisa test case [perf_udp_iperf_sriov](https://github.com/microsoft/lisa/blob/d97439f4afe688a4e410b3090ab0dac3b09c5da1/microsoft/testsuites/performance/networkperf.py#L281) uses iperf3 to test the network throughput between 2 Azure Linux VMs. This test should pass for Azure Linux VMs.
* Actual Behavior
The test is intermittently failing with the following error - `error: the client has unexpectedly closed the connection`.
* Steps to Reproduce
-- Spin up 8 iperf servers at the same time in parallel (we are using port 750-757 here) - `sudo iperf3 -s -1 -J -i10 -f g -p `
-- Now run 8 clients in parallel with the following parameters - `sudo iperf3 -t 10 -c -u -J -i1 -f g -p -P 64 -l 8192 -4`
When these commands run for the last port (757 in this case) the error occurs.
* Possible Solution
# Enhancement Request
* Current behavior
* Desired behavior
* Implementation notes
Contributor guide
Research direction
Start with the linked LISA test case, perf_udp_iperf_sriov in networkperf.py, and reproduce the parallel server and client commands using eight ports and -P 64. Trace the intermittent client-side closure in iperf3's connection and UDP parallel-stream handling. Done means identifying the failure cause, adding coverage where appropriate, and confirming the test no longer fails intermittently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100