Steve Hay wrote on 2010-12-08:
> I have some mod_perl-2 software which keeps causing the Apache server
to
> crash, and I believe the cause of it is users pressing the Stop button
> in their browsers, causing the pipe to be broken, which then leads to
> the crash when CGI::Carp's fatalsToBrowser feature tries to send an
HTML
> error message to the browser (... saying that data can't be sent to
the
> client!!!).
> 
> I want to catch the "broken pipe" error and simply log it in the
> error.log, and rethrow other exceptions (to be picked up by
CGI::Carp's
> fatalsToBrowser), but instead of getting an APR::Error object, I'm
> getting a string saying "APR does not understand this error code"
> 

Found where the problem is. PerlIOApache_write() mistakenly called
Perl_croak() with a stringified apr_status_t instead of using
MP_RUN_CROAK() (which makes a proper APR::Error object to croak with)
like PerlIOApache_flush() does.

The attached patch fixes this.

I will apply it soon unless anyone knows of any reason why
PerlIOApache_write() should be different.

Attachment: err.patch
Description: err.patch

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@perl.apache.org
For additional commands, e-mail: dev-h...@perl.apache.org

Reply via email to