blino's website

Free software developer and more

Lately, I experienced some freezes during night, which revealed to happen when a cron job rotated the apache logs and tried to restart httpd with an USR1 signal.

This makes Apache 2.0 run "internal dummy connection" sub-requests on its child processes:

127.0.0.1 - - [07/Apr/2007:04:07:39 +0200] "GET / HTTP/1.0" 200 8145 "-"
"Apache/2.2.4 (Mandriva Linux/PREFORK-6mdv2007.1) (internal dummy connection)"

In my case, I use the Prefork MPM, and there were hundreds of sub-requests triggered in a few minutes, my home page being handled by blosxom and running a perl interpreter for each request... After a few minutes, this internal DoS made my box quite unresponsive, and never came back to normal (maybe there's also a bug in my 2.6.17 kernel).

A workaround has beeen to use a mod_rewrite rule to use static content for /, as suggested on the upstream ML and by other users:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} internal\ dummy\ connection
RewriteRule ^/$ /static/style.css [L]

A solution is being worked at upstream, it could be using an OPTIONS * request instead of GET /, but it seems it has not been implemented yet...



Comments are closed for this story.

Trackbacks are closed for this story.

blosxom Optimised for standards.
Olivier Blin (2005)