I have encounter the same problem (at least the same symptoms) 

thread here:
http://marc.info/?l=apache-modperl&m=114226565622372&w=2

I have never been able to find a true solution, but it is very
intermittent.  I worked around it by doing this (which isn't really a
solution at all, and in fact borders on horrible).  It does however keep
the user from getting a 500 (they get nothing at all instead).  I kill
the child because the errors would usually come in clusters all from a
single apache child.

sub handler {
    my $r = shift;
    if ( !ref($r) || (ref($r) ne 'Apache' && ref($r) ne
'Apache::Request' && ref($r) ne 'Apache::Filter')){
       print STDERR 'pnotes error occuring '.__PACKAGE__.' - pid: ' . $$
. ' non-apache object: ' . ref($r) . "\n";
       Apache->request->child_terminate;
       return DONE;
    }
...

You might be able to work around it by doing something like this though
now that i think about it.

sub handler {
    my $r = shift;
    if ( !ref($r) || (ref($r) ne 'Apache' && ref($r) ne
'Apache::Request' && ref($r) ne 'Apache::Filter')){
        $r = Apache->request;
        $r->child_terminate; # i'd still kill off the child anyway
}

HTH

Adam


-----Original Message-----
From: Victor Danilchenko [mailto:[EMAIL PROTECTED] 
Sent: Thursday, May 03, 2007 6:51 PM
To: Frank Wiles
Cc: modperl@perl.apache.org
Subject: Re: Help with $r being corrupted

Frank Wiles wrote:

>    Actually it isn't an issue of methods being forgotten, more likely
>    you aren't using Apache2::RequestUtil in your code.  Preferably
>    preloading it. 

        Well, the production code which has this problem is running
under 
mod_perl 1 and Apache 1.3 right now, but I do load both Apache and 
Apache::Request there (the code is compatible with moth mod_perl and 
mod_perl2, I also load Apache2::RequestUtil in the Apache2 comaptibility

block), and the error still occurs.

        Is it some different module for Apache 1 that I am missing?
Though the 
fact that the error occurs only infrequently, and mostly in requests 
which occur over SSL, makes me suspect that it's something else.

Reply via email to