Hi, I am trying to deploy mod_proxy_html-2.5.2 with a httpd 2.2.3 but it fills my error_log with messages like: [Thu Apr 19 08:42:50 2007] [error] [client 192.168.254.25] Error in bucket read The reason for this message lies in the following part of the code, I think. if ( APR_BUCKET_IS_EOS(b) ) { ... } else if ( ! APR_BUCKET_IS_METADATA(b) && apr_bucket_read(b, &buf, &bytes, APR_BLOCK_READ) == APR_SUCCESS ) { ... } else { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, f->r, "Error in bucket read") ; } The "else if" fails if APR_BUCKET_IS_METADATA(b) is true or if there was an error in bucket read. So, I think there are metadata buckets that cause the ap_log_error. The development version of mod_proxy_html reads a bit different: if ( APR_BUCKET_IS_EOS(b) ) { ... } else if ( apr_bucket_read(b, &buf, &bytes, APR_BLOCK_READ) == APR_SUCCESS ) { ... } else { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, f->r, "Error in bucket read") ; } So, what is appropriate for 2.5.2? Is it a) like 3.0 or rather b) if ( APR_BUCKET_IS_EOS(b) ) { ... } else if ( APR_BUCKET_IS_METADATA(b) ) { /* do something special for metadata buckets */ } else if ( apr_bucket_read(b, &buf, &bytes, APR_BLOCK_READ) == APR_SUCCESS ) { ... } else { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, f->r, "Error in bucket read") ; } or is it c) if ( APR_BUCKET_IS_EOS(b) ) { ... } else if ( ! APR_BUCKET_IS_METADATA(b) && apr_bucket_read(b, &buf, &bytes, APR_BLOCK_READ) == APR_SUCCESS ) { ... } else if ( ! APR_BUCKET_IS_METADATA(b) ) { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, f->r, "Error in bucket read") ; } In case a) metadata buckets are handled by the same code as normal buckets. In case b) they get special treatment and in case c) they are simply lost. What is right? If b), what kind of handling is needed? Thanks, Torsten Förtsch
Attachment:
pgpQoc6TVHZdl.pgp
Description: PGP signature