Hi, I am not sure if this is mod_perl bug. I have this error in my log: [Mon Mar 15 00:12:38 2004] [error] [client 211.128.98.215] failed to get bucket brigade: 70014:End of file found, referer: http://domain.com/edit_photo.pl
There are like thousands of them. The system will freeze due to high load, and the only way to restore it is to restart httpd. The edit_photo.pl is a script to upload photo to the server and then resize it using GD. I don't have any idea at all what is happening. Anyone has an idea? Please help.
My env: perl-5.8.3-10 httpd-2.0.48-1.2 mod_perl-1.99_12-2
Please try this patch (you may need to upgrade to 1.99_13 first):
Index: src/modules/perl/modperl_io_apache.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_io_apache.c,v
retrieving revision 1.17
diff -u -r1.17 modperl_io_apache.c
--- src/modules/perl/modperl_io_apache.c 4 Mar 2004 06:01:07 -0000 1.17
+++ src/modules/perl/modperl_io_apache.c 15 Mar 2004 21:17:57 -0000
@@ -292,8 +292,20 @@
rc = ap_get_brigade(r->input_filters, bb, AP_MODE_READBYTES, APR_BLOCK_READ, len); - if (rc != APR_SUCCESS) { + if (rc != APR_SUCCESS) { char *error; + + /* EOF is not really an error. A possible reason for + * getting EOF: if EOS came in the same bb with data, or + * more data than available was asked for, the fact that + * EOS has passed through wasn't stored + * anywhere. Therefore a request to get another bb after + * EOS was seen, may result in a valid EOF response */ + if (rc == APR_EOF) { + MP_TRACE_o(MP_FUNC, "wanted %db, read EOF", wanted); + return 0; + } + /* if we fail here, we want to just return and stop trying * to read data from the client. */ @@ -350,7 +362,7 @@
/* XXX: what happens if the downstream filter returns more * data than the caller has asked for? We can't return more - * data that requested, so it needs to be stored somewhere and + * data than requested, so it needs to be stored somewhere and * dealt with on the subsequent calls to this function. or may * be we should just assert, blaming a bad filter. at the * moment I couldn't find a spec telling whether it's wrong
__________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
-- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html