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
