This issue is also being tracked at
http://issues.apache.org/bugzilla/show_bug.cgi?id=36751

Any input is more than welcome...

Quote: <<< If a mod_perl "croak" means the whole process is terminated, then that much really is a mod_perl bug. Output filters may very well fail and return errors under abnormal circumstances such as aborted connections. >>>


Matthew Darwin wrote:
Not sure if this helps. It looks like maybe an SSL problem, not related to mod_perl?


[Wed Sep 21 12:10:20 2005] [info] Initial (No.1) HTTPS request received for child 246 (server myserver:443)

[Wed Sep 21 12:10:23 2005] [info] Connection to child 249 established (server myserver:443, client 172.22.10.19)

[Wed Sep 21 12:10:24 2005] [info] Subsequent (No.2) HTTPS request received for child 246 (server myserver:443)

[Wed Sep 21 12:10:24 2005] [info] (OS 10053)An established connection was aborted by the software in your host machine. : core_output_filter: writing data to the network

[Wed Sep 21 12:10:24 2005] [info] (620019)APR does not understand this error code: SSL output filter write failed.

Apache2::Filter: (620019) APR does not understand this error code at -e line 0

[Wed Sep 21 12:10:25 2005] [notice] Parent: child process exited with status 9 -- Restarting.


Matthew Darwin wrote:

Hi all,

Would anyone know where to start looking about how to track down the source of this following line in error.log:

Apache2::Filter: (620018) APR does not understand this error code at -e line 0

When this is printed, Apache stops handling requests and restarts. We can reproduce this by clicking on a few web pages in quick succession.

Operating environment for Apache is:

mod_perl 2.0.0
apache 2.0.54
mod_ssl
Windows XP Professional


The module that uses Apache2::Filter looks like this:

package BlaBlaBla;

use strict;
use Apache2::Filter ();
use Apache2::RequestRec ();
use Apache2::Connection ();
use APR::Table ();

my $utf8_leftover;
my $leftover;

[...]

sub handler {
        my ($f) = shift;
        $r = $f->r;

        unless ($f->ctx) {
                if ($r->content_type =~ m#^text/#) {
                        $f->r->headers_out->unset('Content-Length');
                }
                set_globals ();
                $f->ctx(1);
                $leftover = '';
                $utf8_leftover = '';
                binmode (STDOUT, ":utf8");
                binmode (STDERR, ":utf8");
        }

        if ($r->content_type =~ m#^text/#) {
                while ($f->read(my $buffer, BUFF_LEN)) {
                        utf8::encode ($leftover);
$f->print (do_it ($leftover . $utf8_leftover . $buffer));
                }
        } else {
                while ($f->read(my $buffer, BUFF_LEN)) {
                        $f->print ($buffer);
                }
        }
        return Apache2::Const::OK;
}

[...]



--
Matthew Darwin
[EMAIL PROTECTED]
http://www.mdarwin.ca

Reply via email to