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


Reply via email to