Bruno Coudoin
2013-06-14 15:30:51 UTC
Hi,
I have an HTTP server based on HTTP Server 3. We run it on Boost 1.42 on
Debian 6.
The server works fine for years. Recently we added a new feature that
requires a long processing time like 10 minutes. When even a single
client make this request, our server starts slowly to no more accept
incoming requests. On the client side, we stay connected indefinitely.
With netstat I can see a lot of sockets associated to my server process
in the CLOSE_WAIT state. Under normal operation, without this long
processing it does not happens.
It is similar to the previous post by George van Venrooij. In my case, I
ended up testing with simple wget so I am sure the problem is not on the
client side.
Beside this long request, the load is very small like 10 clients at 1
request per second.
Does anybody experience a similar behavior? Is doing long processing
supported or is there a way to make it works.
BTW, I changed the code to run the long processing in a background
thread and return immediately to the client and the problem is gone.
Bruno.
I have an HTTP server based on HTTP Server 3. We run it on Boost 1.42 on
Debian 6.
The server works fine for years. Recently we added a new feature that
requires a long processing time like 10 minutes. When even a single
client make this request, our server starts slowly to no more accept
incoming requests. On the client side, we stay connected indefinitely.
With netstat I can see a lot of sockets associated to my server process
in the CLOSE_WAIT state. Under normal operation, without this long
processing it does not happens.
It is similar to the previous post by George van Venrooij. In my case, I
ended up testing with simple wget so I am sure the problem is not on the
client side.
Beside this long request, the load is very small like 10 clients at 1
request per second.
Does anybody experience a similar behavior? Is doing long processing
supported or is there a way to make it works.
BTW, I changed the code to run the long processing in a background
thread and return immediately to the client and the problem is gone.
Bruno.