sockperf playback tcp mode on RaspberryPi: Error, illegal time or size at line #4
akk988 opened this issue · 1 comments
Hello everyone,
I have found another bug with sockperf on RaspberryPi when running a playback test in tcp mode.
Issue description
sockperf can't run playback from a playback file. Testing platform is raspberrypi with raspbian 10 OS.
Same playback file was tested successfully on WSL.
Steps to reproduce the issue
-
On Raspberrypi, Run sockperf as server
$sockperf server -p 12000 --tcp -
Generate a playback file
This was done on WSL, because generating this file on RaspberryPi didn't work (but this is another issue ;) )
$sudo ./gen1.awk > test.pfil -
Run sockperf as client in playback mode
$sockperf playback --data-file test.pfile -p 12000 --tcp --dontwarmup --reply-every 1
this should reprdduce the following error:
$illegal time or size at line #4
What's the expected result?
- Latency results including avarage latency, total observation and histogram
What's the actual result?
$illegal time or size at line #4
Additional details / screenshot
RaspberryPi
Hello @akk988,
I do not have RaspberryPi but described issue is not seen on my setup with v3.7.
cat playback.txt
# ==== playback file for sockperf - generated by gen1.awk ====
#baseTime=2.000000; PPS=10; runtime=5.000000; interval=0.100000; NUM_RECORDS=50
# file contains 50 records
2.100000000, 14
2.200000000, 14
2.300000000, 14
server:
/auto/mtrswgwork/igori/prj/sockperf/build-master/install/bin/sockperf sr -i 127.0.0.1 --tcp
sockperf: == version #3.7-8.git089e72e49126.dirty ==
sockperf: [SERVER] listen on:
[ 0] IP = 127.0.0.1 PORT = 11111 # TCP
sockperf: Warmup stage (sending a few dummy messages)...
sockperf: [tid 31820] using recvfrom() to block on socket(s)
^Csockperf: Test end (interrupted by user)
sockperf: Total 50 messages received and handled
sockperf: cleanupAfterLoop() exit
client:
sockperf pb -i 127.0.0.1 --tcp --data-file /tmp/playback.txt --dontwarmup --reply-every 1
sockperf: == version #3.7-8.git089e72e49126.dirty ==
sockperf[CLIENT] send on:sockperf: using recvfrom() to block on socket(s)
[ 0] IP = 127.0.0.1 PORT = 11111 # TCP
sockperf: Starting test...
sockperf: Test ended
sockperf: [Total Run] RunTime=7.000 sec; Warm up time=400 msec; SentMessages=50; ReceivedMessages=50
sockperf: ========= Printing statistics for Server No: 0
sockperf: [Valid Duration] RunTime=4.900 sec; SentMessages=50; ReceivedMessages=50
sockperf: ====> avg-latency=60.663 (std-dev=5.547)
sockperf: # dropped messages = 0; # duplicated messages = 0; # out-of-order messages = 0
sockperf: Summary: Latency is 60.663 usec
sockperf: Total 50 observations; each percentile contains 0.50 observations
sockperf: ---> <MAX> observation = 94.426
sockperf: Test end (interrupted by signal 2)
sockperf: ---> percentile 99.999 = 94.426
sockperf: ---> percentile 99.990 = 94.426
sockperf: ---> percentile 99.900 = 94.426
sockperf: ---> percentile 99.000 = 94.426
sockperf: ---> percentile 90.000 = 61.927
sockperf: ---> percentile 75.000 = 61.224
sockperf: ---> percentile 50.000 = 60.127
sockperf: ---> percentile 25.000 = 59.401
sockperf: ---> <MIN> observation = 54.127