iperf 2.0.2 bug?
Hi,
I am running iperf-2.0.2 on Linux 2.6.21 on x86 hosts. We just upgraded
to Linux 2.6.21 and the behavior of the UDP client seems to have
changed ... even though we applied the linux-2.6.21 patch.
The symptoms are that the UDP client outputs a message at the end of
a transmission that says there are 2 out-of-order packets. After looking
at tcpdump output, I realized that the client is outputting an incorrect
sequence number in the FIN packets that are sent at the end of a UDP
transmission. Furthermore, the cause seems to be that the FIN packet is
sent out before the Reporter thread has had time to process all of its work;
i.e., the sequence number seen by the transfer agent (packet->packetID)
is different than the count seen by the Reporter (agent->report.cntDatagrams)
because the Reporter still has a backlog of packet reports that it has
not processed.
I fixed the problem by calling thread_rest() in Client::Run() right before
calling CloseReport() to give the Reporter thread to catch up but that
may or may not be the best solution.
Regards,
Ken Wong