> > I'm not saying that the implementation is broken; just that > its possible to > > cause descriptor starvation in a Kannel HTTP server > relatively easily using > > a Kannel HTTP client. > > Paul, can you provide us a szenario how we can reproduce that > behaviour? Maybe a shell script or something similiar? >
The scenario was a stress test of the PPG using the test_ppg PI tool. I ran it with -t 5 -c 10000 (5 threads, 10000 requests). The PPG was on a high end Solaris box, the test_ppg on a low end Linux. The PPG starts to fail with 2002-06-19 21:44:34 [6] ERROR: HTTP: Error accepting a client. 2002-06-19 21:44:34 [6] ERROR: System error 24: Too many open files type errors. I concluded that this was from descriptor exhaustion and started to look at how the HTTP server code handles the descriptors (see previous emails on this topic). The two use cases here are clients with Kannel and non-Kannel HTTP client libraries. Regardless, it should'nt really be possible for any client to induce resource shortage in a server either accidently or as a deliberate denial-of-service attack. Maybe a watcher function inside the HTTP server code to monitor the number of active HTTPClient instances against a configured limit is the answer.