esnet / esnet/iperf

Iperf3: connection is getting closed from the client side unexpectedly

Open
#1,756 9 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.