perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steve Hay" <Steve...@planit.com>
Subject RE: APR errors not working on Win32
Date Mon, 13 Dec 2010 18:05:09 GMT
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.

Mime
View raw message