I have yet to solve the runaway problem, but I came up with a way of 
identifying the URLS that are causing the problems.

First, I added the following to a startup.pl script...

$SIG{'USR2'} = \&apache_runaway_handler;
sub apache_runaway_handler {
     print RUNFILE "\%ENV contains:\n";
     open(RUNFILE,">/tmp/apache_runaway.$$");
     for (keys %ENV) {
         print RUNFILE "$_ => $ENV{$_}\n";
     }
     close(RUNFILE);
     exit(1);
}

Then I used a process monitor (via cron) to check the sizes of the 
httpd processes and to issue a system("kill -USR2 $pid") whenever 
that size reached a certain threshold (in this case 55MB).

What's dumped are the environment variables which contain the URL 
information so that the problem can (in theory) be reproduced.

Robert Landrum

Reply via email to