Brian Akins wrote:

From the best I can tell, the issue is in the proxy code. When a response gets "truncated" for whatever reason, it doesn't pass an error along, so the filters never know that "something bad" happened.



From mod_proxy_http.c

in the function ap_proxy_http_process_response:

   /* try send what we read */
if (ap_pass_brigade(r->output_filters, bb) != APR_SUCCESS
                        || c->aborted) {
                        /* Ack! Phbtt! Die! User aborted! */
backend->close = 1; /* this causes socket close below */
                        finish = TRUE;
                    }




It seems this will allow a "partial" response to be passed down the filter chain with nothing noting that it was an error condition. This exact situation seems to be what I am seeing.


Also, we are still using AP_SERVER_BASEVERSION rather than ap_get_server_version() for Via.


--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies

Reply via email to