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