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. 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:
<Location /foo>
SetHandler perl-script
PerlHandler +Handler::Bar Handler::Foo
</Location>
The odd behavior we're seeing is that the Apache parent process forks off a
child that serves a number of requests. At some point in time, a POST request
(not necessarily the first POST request) will be sent to /foo. The
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 {
my $request = shift;
return OK if !$request->is_initial_req();
my $cookies;
my $ref;
# REGISTRY is just an environment variable we use for scripts running under
Apache::Registry
if (!$ENV{REGISTRY}) {
$request = Apache::Request->instance($request);
$cookies = Apache::Cookie->new($request)->fetch;
$ref = lc($request->param('ref'));
}
else {
$cookies = Apache::Cookie->fetch();
$ref = lc(param('ref'));
}
}
What we're finding is that the request will fail at the $request->param()
line. 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. After that, any further requests handled by that
Apache child fails with a 500. 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. 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
CarDomain Network, Inc.
Direct: (206) 926-2145
http://www.cardomain.com/id/fuzzz813
------------------------------------------