httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Torsten Foertsch <torsten.foert...@gmx.net>
Subject [users@httpd] mod_proxy_html is filling error_log
Date Thu, 19 Apr 2007 10:11:27 GMT
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

Mime
View raw message