Menu

[BUG Report] -P Failed on Windows

chen qiang
2021-02-22
2021-05-10
  • chen qiang

    chen qiang - 2021-02-22

    environment: windows10
    server: iperf>iperf-2.1.1.exe -s -u -i 1
    client: iperf>iperf-2.1.1.exe -u -c 127.0.0.1 -P 2 -i 1

    In windows 10 system,
    Only one thread can be received at the same time
    The other threads will received after the end of the first thread

    I tried to add print to the code, and I find In func(Listener::udp_accept),
    recvfrom will block when the first thread is working.

    only the first thread stoped, recvfrom will get back,then start new thread 2.

     
    • Robert McMahon

      Robert McMahon - 2021-02-22

      thanks, I'm able to reproduce this. Let me debug what's going on

      Bob

       
      • Robert McMahon

        Robert McMahon - 2021-02-25

        I filed ticket #99 for this

        Bob

         
        • chen qiang

          chen qiang - 2021-02-26

          Thank you for your efforts. It looks very troublesome. Will this be repaired in the future

           
        • chen qiang

          chen qiang - 2021-02-26

          Thank you for your efforts. It looks very troublesome. Will this be repaired in the future

           
          • Robert McMahon

            Robert McMahon - 2021-02-26

            I'm looking at an incr-port option as a work-around. I'll post once I have some code done.

            Bob

             
          • Robert McMahon

            Robert McMahon - 2021-02-26

            My plan is to support a port range on the server and and on the client. It would be something like:

            • iperf -s -u -p 6000-6015
            • iperf -c host -u -p 6000 -6015

            Bob

             

            Last edit: Robert McMahon 2021-03-01
  • Robert McMahon

    Robert McMahon - 2021-02-28

    Can you try with the version dated Feb 27? The work around is to use the new port range feature. On the server and client use:

    • iperf -s -u -i 1 -p 6000-6007
    • iperf -c host -u -i 1 -p 6000-6007
     

    Last edit: Robert McMahon 2021-02-28
    • chen qiang

      chen qiang - 2021-03-01

      I tried it according to your example, and it worked. Thank you very much

       
  • RafaS

    RafaS - 2021-05-07

    Maybe that can be a hint to fix it: 2.0.5 still works with multiple UDP streams, apparently compiled with "win32 threads":
    https://sourceforge.net/p/iperf/patches/21/
    tested on win10:

    iperf-2.0.14a-win.exe -c host -u -i1 -p5000 -t3 -b 200M -P2
    iperf_2.0.5_threads.exe -s -u -i1 -p 5000
    [ 1] 2.0- 3.0 sec 25.1 MBytes 210 Mbits/sec 0.000 ms 3/17894 (0.017%)
    [ 3] 2.0- 3.0 sec 25.1 MBytes 210 Mbits/sec 0.000 ms 2/17899 (0.011%)
    [SUM] 2.0- 3.0 sec 50.2 MBytes 421 Mbits/sec
    iperf_2.0.5_threads.exe --version
    iperf version 2.0.5 (08 Jul 2010) win32 threads

    I also compared to 2.0.5 compiled with "pthreads" available here:
    https://iperf.fr/iperf-download.php
    iperf version 2.0.5 (08 Jul 2010) pthreads
    and that version sees only one stream

     
    • Robert McMahon

      Robert McMahon - 2021-05-10

      Thanks for this. I'll take a look.

       

Log in to post a comment.

Monday.com Logo