I'm testing MHD in an environment with a lot of simultaneous requests, and I noticed that it loses some connections. I did the same test in other servers like NodeJS, Libevent, Nginx and Jetty, and them worked fine.
The test was done on Ubuntu 14.04 64 bits and MHD 0.9.45 (latest release) compiled in this system.
However, I'm not sure if it is a MHD limitation or some wrong configuration in my test. Let's do it:
It is very easy to test it, using the HTTPerf tool, perform the following command line:
$ httperf --server=127.0.0.1 --port=8080 --rate=100 --num-conns=1000 --num-calls=10 --timeout=1 --hog --uri=/
The result of MHD will be:
===
Total: connections 1000 requests 2000 replies 1000 test-duration 9.990 s
Connection length [replies/conn]: 1.000
[I cut the irrelevant information here]
Errors: total 1000 client-timo 0 socket-timo 0 connrefused 0 connreset 1000
===
Performing the same command line running another server that I sad, the result will be something like this:
===
Total: connections 1000 requests 10000 replies 10000 test-duration 9.991 s
Connection length [replies/conn]: 10.000
...
Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
===
In attachment all source code used in the tests with the HTTPerf logs. Notice the erros in the `LOG_MHD.TXT` file.
So, is it a limitation of MHD, or is something wrong in my test? (notice that I used the `MHD_OPTION_CONNECTION_LIMIT, (unsigned int) 10000`)
Thank you very much!
--