Mark wrote:
-------------8<---------- Start Bug Report ------------8<---------- 1. Problem Description:
$ENV{REDIRECT_ERROR_NOTES} not working with MP2
Using latest everything (modperl 2 RC5).
To illustrate, I simply configure Apache with an errordocument:
ErrorDocument 500 /cgi/printenv
I have a perl-scripts configured like this:
<Directory "/usr/local/apache2/perl"> Options ExecCGI SetHandler perl-script PerlResponseHandler ModPerl::Registry PerlOptions +ParseHeaders </Directory>
And a script the generates an error:
#/usr/bin/perl barf();
The errordocument 'printenv' output shows REDIRECT_ERROR_NOTES empty.
When the identical barf script is run under CGI (script-alias), REDIRECT_ERROR_NOTES
has an error message.
I fooled around with more complex examples, accessing ARP table 'error-notes' and
that is also empty.
because you are in the sub request. the value is set in $r->main 'error-notes' table. I wonder why the sub-request doesn't see it.
Sorry, I wasn't clear about that. In my tests using APR table, I did look at the previous request, which is where I expected to find the error-notes. Here's my handler:
sub handler { my $r = shift;
my $pr = $r->prev;
$r->content_type('text/plain');
# dump out the previous request's notes table my $table = $pr->notes; foreach my $key (keys %{$table}) { printf "$key = '%s'\n", $table->{$key}; }
...
Also I wonder if we should adjust in ModPerl::RegistryCooker:
sub log_error { my($self, $msg) = @_; my $class = ref $self;
- $self->{REQ}->log_error($msg); - $self->{REQ}->notes->set('error-notes' => $msg); + $self->{REQ}->log_rerror($msg); [EMAIL PROTECTED]>{URI}} = $msg; }
which is supposed to do that same in one call. Any difference with the above change?
With this in place (which I admit I don't understand) error-notes is now populated, but maybe the wrong stack frame or something, since the error text is not the actual error from the original request. I will study this further, maybe this is somehow my problem?
what Apache is that?
Server version: Apache/2.0.53
Thanks,
Mark