Error Division by Zero when running cloudsuite media streaming benchmark
I am trying to run CloudSuite media streaming on a two-node setup. Node one is the server and node 2 sends client requests to the server. The hosts run Ubuntu 20.04. I followed the instructions available at https://github.com/parsa-epfl/cloudsuite/blob/main/docs/benchmarks/media-streaming.md. From the server, I run the benchmark using the default command and with parameters such as the one shown below:
sudo docker run -it --name=streaming_client -v logs:/videos/logs -v output:/output --net host cloudsuite/media-streaming:client x.x.x.x
However, I have the error below:
Total clients = 4
Total number of sessions = 100
Launching 4 clients on localhost
Running command httperf --hog --server X.X.X.X --videosesslog=[/videos/logs/cl*],[0.1,0.3,0.4,0.2],[localhost,localhost,localhost,localhost] --epoll --recv-buffer=524288 --ssl --port 443 --ssl-ciphers TLS_AES_128_GCM_SHA256 --output-log=/output/result1.log --num-sessions=25 --rate=2.50 2>>/output/bt1.trace
Running command httperf --hog --server X.X.X.X --videosesslog=[/videos/logs/cl*],[0.1,0.3,0.4,0.2],[localhost,localhost,localhost,localhost] --epoll --recv-buffer=524288 --ssl --port 443 --ssl-ciphers TLS_AES_128_GCM_SHA256 --output-log=/output/result2.log --num-sessions=25 --rate=2.50 2>>/output/bt2.trace
Running command httperf --hog --server X.X.X.X --videosesslog=[/videos/logs/cl*],[0.1,0.3,0.4,0.2],[localhost,localhost,localhost,localhost] --epoll --recv-buffer=524288 --ssl --port 443 --ssl-ciphers TLS_AES_128_GCM_SHA256 --output-log=/output/result3.log --num-sessions=25 --rate=2.50 2>>/output/bt3.trace
Running command httperf --hog --server X.X.X.X --videosesslog=[/videos/logs/cl*],[0.1,0.3,0.4,0.2],[localhost,localhost,localhost,localhost] --epoll --recv-buffer=524288 --ssl --port 443 --ssl-ciphers TLS_AES_128_GCM_SHA256 --output-log=/output/result4.log --num-sessions=25 --rate=2.50 2>>/output/bt4.trace
sizeof(fd_set) = 128
sizeof(fd_set) = 128
sizeof(fd_set) = 128
sizeof(fd_set) = 128
peak_hunter/launch_hunt_bin.sh: line 50: 0*100/0: division by 0 (error token is "0")
Requests: 0
Replies: 0
Runtime error (func=(main), adr=9): Divide by zero
Reply rate:
Runtime error (func=(main), adr=9): Divide by zero
Reply time:
Net I/O: 0
sed: -e expression #1, char 19: unterminated `s' command
sed: -e expression #1, char 19: unterminated `s' command
sed: -e expression #1, char 19: unterminated `s' command
sed: -e expression #1, char 19: unterminated `s' command
sed: -e expression #1, char 19: unterminated `s' command
Looking at the code in peak_hunter/launch_hunt_bin.sh the error is coming from line 50 after adjusting that line I still have the rest of the errors below.
Note: I also tried to build the images manually without pulling them from docker and I have the same error message.
Hello,
I also meet this problem. The reason might be that videperf cannot find the session lists, thus no load is actually generated. It's highly possible that the folder you mapped is empty or does not exist. For instance, docker requires to use absolute path when mounting files into the container, and your command seems to use relative path, which is interpreted into a data volume by docker.
@Xusine1131, You are absolutely right, using the absolute path solves the issue for me. To avoid future problems, I think it will be better to catch the error and emit a more helpful message instead of the division by error message.
This issue is solved with #406