Hello:

I apologize in advance if this description is a bit vague, but this is =
the information as we are aware of it at this moment.=A0 Please give us =
additional tips on where we might be able to gather for information, or =
better yet, a solution.

Apache version: 1.3.31
mod_perl version: 1.22 (compiled in statically, not as a DSO)

We're running a standard pre-fork server, with a location line that =
looks approximately like:


=A0=A0=A0 SetHandler perl-script
=A0=A0=A0 PerlHandler +Handler::Bar Handler::Foo


The odd behavior we're seeing is that the Apache parent process forks =
off a child that serves a number of requests.=A0 At some point in time, =
a POST request (not necessarily the first POST request) will be sent to =
/foo. =A0The Handler::Bar handler looks approximately like:

use strict;
use warnings;

use Apache::Constants qw( :common );
use Apache::Cookie;
use Apache::Request;

use CGI qw( :standard );
use CGI::Cookie;

sub handler {
=A0=A0=A0 my $request =3D shift;

=A0=A0=A0 return OK if !$request->is_initial_req();

=A0=A0=A0 my $cookies;
=A0=A0=A0 my $ref;

=A0=A0=A0 # REGISTRY is just an environment variable we use for scripts =
running under Apache::Registry
=A0=A0=A0 if (!$ENV{REGISTRY}) {
=A0=A0=A0=A0=A0=A0=A0 $request =3D Apache::Request->instance($request);
=A0=A0=A0=A0=A0=A0=A0 $cookies =3D Apache::Cookie->new($request)->fetch;
=A0=A0=A0=A0=A0=A0=A0 $ref=A0=A0=A0=A0 =3D lc($request->param('ref'));
=A0=A0=A0 }
=A0=A0=A0 else {
=A0=A0=A0=A0=A0=A0=A0 $cookies =3D Apache::Cookie->fetch();
=A0=A0=A0=A0=A0=A0=A0 $ref=A0=A0=A0=A0 =3D lc(param('ref'));
=A0=A0=A0 }
}

What we're finding is that the request will fail at the =
$request->param() line.=A0 It doesn't seem to die, given that we don't =
get a 500 back, but if we put Log4perl warnings before and after that =
line we see that it doesn't progress past that line.=A0 After that, any =
further requests handled by that Apache child fails with a 500.=A0 The =
error we get in the logs looks something like:

Use of inherited AUTOLOAD for non-method Random::Handler::handler() is =
deprecated at Handler/Foo.pm line 68.

At this point, we are stumped.=A0 Anyone have any ideas on what might be =
going on, or maybe point us in another direction in debugging this =
issue?

M.


--
------------------------------------------
Mon-Chaio Lo
Senior Software Engineer
=A0
CarDomain Network, Inc.
Direct: (206) 926-2145
http://www.cardomain.com/id/fuzzz813
------------------------------------------