Jindo wrote:
> Hello,
>
> Unfortunately, I did suspect the same before and called Index.cgi
> directly. By calling it directly, $r->log_error($r->prev()->uri())
> still perfectly printed one line in error_log.
you must be doing something with internal redirects _someplace_. I'm
running CVS versions of both Apache and mod_perl and the below script
gives me exactly what we all expect (both using Apache::Registry and
modified as a standalone PerlHandler).
I'd try turning on mod_perl debug mode (assuming you built with a
debugging perl):
PerlSetEnv MOD_PERL_TRACE all
and see if you can see the redirect taking place.
I'm sure that if r->prev were _always_ defined lots of stuff would be
breaking for lots of people. after all, what's in r->prev if there is
no subrequest? the main request was somehow copied into r->prev
without anybody asking for it?
if you can't see an internal redirect anyplace and still think this is
a bug, then I'd suggest stripping down your httpd.conf to a bare
minimum and creating a test case that we can plug in and try in order
to isolate the issue and see what's going on.
HTH
--Geoff
#!/usr/bin/perl
my $r = shift;
$r->send_http_header('text/plain');
print "prev is defined\n" if defined $r->prev;
print "prev exists\n" if $r->prev;
eval {
print "prev uri\n" if $r->prev->uri;
};
print "prev->uri blew up\n" if $@;
print "all done\n";