I have handler that looks like this:
sub handler ($$) {
my ($class, $apache) =3D @_;
Apache::request($apache);
$apache->status(200); # Default
#.....
}
The vast majority of the time, this works fine. Every now
and then, usually after the apache server has been up
for a while, and usually under substantial load,
it appears that the handler in one child process starts
being called as if it did not have the prototype.
That is, $apache ($r) is in $_[0] instead of $_[1],
and I get messages like this:
[Fri Jun 13 06:00:06 2003] [error] Can't call method "status" on an undefin=
ed
+value at Project/Control.pm line 116.
And things quit working because $apache is not set properly.
A server restart clears this up. This is a perl5.6.0
DSO build of mod_perl/apache (1.27), but I am fairly certain I
have also seen this occur on a static mod_perl/apache.
Any ideas on what causes this or a good way to track it down?
--
Matthew Pressly