We have apache running over https with a module that provides
a proxy to (interalia) websockets and tcp sessions. Source is
at:
 https://github.com/abligh/apache-websocket
if anyone is interested.

Following a relatively recent upgrade to apache (sadly I don't
know which, but somewhere between Lucid and Precise), we ended
up with some worker processes that hang with 100% CPU usage.
Investigation with gdb shows this appears to be the destruction
of the output bucket brigade going around and around without
ever terminating. No data is flowing (obviously). These hung
processes will persist for days.

No doubt there is a bug either in our module or apache that causes
this, but I'm more interested in how apache kills runaway workers,
or more accurately why it's not killing them here.

We are using:
 RequestReadTimeout body=300,minrate=1

This should require a minimum data rate of 1 byte per second.
Is RequestReadTimeout only checked if the process actually
is in/exiting select()? If so, how do I do a watchdog?

Or is the issue that minrate 1 with a previous sensible datarate
generates an enormous timeout value that might be in days? If
so is the right approach:
 RequestReadTimeout body=300-3600,minrate=1
or similar?

We're now using:

apache2-mpm-prefork 2.2.22-1ubuntu1.2
Server version: Apache/2.2.22 (Ubuntu)
Server built:   Nov  8 2012 21:37:30

-- 
Alex Bligh





---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
For additional commands, e-mail: users-h...@httpd.apache.org

Reply via email to