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.
err.patch
Description: err.patch
--------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@perl.apache.org For additional commands, e-mail: dev-h...@perl.apache.org