Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iPhone iperf3 application issue #1681

Open
n3gwg opened this issue Apr 13, 2024 · 5 comments
Open

iPhone iperf3 application issue #1681

n3gwg opened this issue Apr 13, 2024 · 5 comments

Comments

@n3gwg
Copy link

n3gwg commented Apr 13, 2024

Server:

  • Version of iperf3: 3.16 (running on OpenWRT)
  • Hardware: Linksys router
  • Operating system: OpenWRT (Linux)

Client:

  • Version of iperf3: who knows? - There does not seem to be a version number anywhere
  • Hardware: iPhone SE 2020
  • Operating system; iOS 17.4.1

Bug Report

  • Expected Behavior: iperf3 client should run an iperf test
  • Actual Behavior: succeeding the execution of the client against the server, the server process is crashed with a segmentation fault
@davidBar-On
Copy link
Contributor

@ n3gwg, more information is needed:

  1. Can you send the output of iperf3 -v on the client and on the server? That should help determine their version and for which machine they were built for
  2. What is the commands that you are running on the server and on the client? (No need to show the exact IP addresses used).)
  3. Does the server crash immediately when running it, when after running the client, or after running the client at the middle of the test execution?
  4. Can you run the server with -V (iperf3 -s -V ....) and send the output?
  5. What do you mean by "succeeding the execution of the client against the server"? Since the server crashed, did the client start but could not connect to the server? Other?

@bmah888
Copy link
Contributor

bmah888 commented May 2, 2024

What app are you using on the iPhone?

FYI, these platforms aren't officially supported, but also due to the nature of these devices it might be difficult for us to assist. We can try to help on a best-effort basis.

@n3gwg
Copy link
Author

n3gwg commented May 3, 2024

@ n3gwg, more information is needed:

  1. Can you send the output of iperf3 -v on the client and on the server? That should help determine their version and for which machine they were built for

Client: IMPOSSIBLE - It is an APP running on an iPhone and is purely a GUI, there is no command line access to it.

Server:
root@wndr3700v2-ap:~# iperf3 -v iperf 3.16 (cJSON 1.7.15) Linux wndr3700v2-ap 5.15.150 #0 Fri Mar 22 22:09:42 2024 mips Optional features available: CPU affinity setting, IPv6 flow label, TCP congestion algorithm setting, sendfile / zerocopy, socket pacing, bind to device, support IPv4 don't fragment, POSIX threads root@wndr3700v2-ap:~#

  1. What is the commands that you are running on the server and on the client? (No need to show the exact IP addresses used).)

Client: IMPOSSIBLE - It is an APP running on an iPhone and is purely a GUI, there is no command line access to it.

Server: iperf3 --server --daemon

  1. Does the server crash immediately when running it, when after running the client, or after running the client at the middle of the test execution?

The server does NOT crash when I use another iperf3 Linux client, it only crashes when I use the iPhone APP client. It seems to print a couple of lines of data then crashes. I will try to run it again when I get back home and provide the precise output.

  1. Can you run the server with -V (iperf3 -s -V ....) and send the output?

I can but will need to do so after I get back home and can run another test.

  1. What do you mean by "succeeding the execution of the client against the server"? Since the server crashed, did the client start but could not connect to the server? Other?

succeeding used in the aforementioned sentence means "after", "client against the server" means, executing the client after the server had already been started.

Thus, one can conclude as follows hereupon:

  1. The server started and did not crash
  2. Even when a different Linux iperf3 running in client mode pointed at the server ("iperf3 --server --daemon") it did not crash. However, when the iPhone APP "iPerf" was pointed at the iperf3 running in server mode on the router, it crashed within a few lines of output.

I hope that clarifies things.

Stuart

@davidBar-On
Copy link
Contributor

Stuart, thanks for the information. It seems that the server crash because it receives "illegal" message from the client, and somehow it doesn't know to handle it well. If this is the case it is important to find the root cause for the crash. Can you run the server using -d -V (debug and verbose) options, and send all the server's output before it crashed? That may help to find where this issue happens.

@n3gwg
Copy link
Author

n3gwg commented Jun 3, 2024

David,

I tried it a few times but it seems to have stopped crashing. I am not sure if this is due to an automatic update of the iPhone app that I use, an automatic upgrade of iOS, or if some upgrades to the openwrt firmware on my router running iperf3 resolved the issue. However, what is interesting is that iperf3 is still at version 3.16 and seems not to have changed at all on the router.

I will try to do some more testing (I have been swamped with work and travel as well for work) when I have time in the near future. If the client is sending some illegal message I presume it might be possible for the iperf3 to trap that illegal message and ignore it or the like.

Thank you!

Stuart

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants