]> git.kaiwu.me - nginx.git/commit
Upstream: better handling of invalid headers in cache files.
authorMaxim Dounin <mdounin@mdounin.ru>
Mon, 2 Oct 2017 16:10:20 +0000 (19:10 +0300)
committerMaxim Dounin <mdounin@mdounin.ru>
Mon, 2 Oct 2017 16:10:20 +0000 (19:10 +0300)
commit105dd42bd79f0d499c9ed1f6f973adb6011abaa0
tree6f9e2eb40b3b832e14fec2092d66baecb1b4182c
parente22f5b71fe21bab59883e1e7d96d36490c627a04
Upstream: better handling of invalid headers in cache files.

If cache file is truncated, it is possible that u->process_header()
will return NGX_AGAIN.  Added appropriate handling of this case by
changing the error to NGX_HTTP_UPSTREAM_INVALID_HEADER.

Also, added appropriate logging of this and NGX_HTTP_UPSTREAM_INVALID_HEADER
cases at the "crit" level.  Note that this will result in duplicate logging
in case of NGX_HTTP_UPSTREAM_INVALID_HEADER.  While this is something better
to avoid, it is considered to be an overkill to implement cache-specific
error logging in u->process_header().

Additionally, u->buffer.start is now reset to be able to receive a new
response, and u->cache_status set to MISS to provide the value in the
$upstream_cache_status variable, much like it happens on other cache file
errors detected by ngx_http_file_cache_read(), instead of HIT, which is
believed to be misleading.
src/http/ngx_http_upstream.c