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