# HG changeset patch # User Maxim Dounin # Date 1478182172 -10800 # Node ID 93b294c5d5812269402b382f3ac0374f0bd3397a # Parent 0fba3ed4e7eba474e3f518763d9e02851c9ff024 Upstream: avoid holding a cache node with upgraded connections. Holding a cache node lock doesn't make sense as we can't use caching anyway, and results in "ignore long locked inactive cache entry" alerts if a node is locked for a long time. The same is done for unbuffered connections, as they can be alive for a long time as well. diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c --- a/src/http/ngx_http_upstream.c +++ b/src/http/ngx_http_upstream.c @@ -2760,6 +2760,15 @@ ngx_http_upstream_send_response(ngx_http u->header_sent = 1; if (u->upgrade) { + +#if (NGX_HTTP_CACHE) + + if (r->cache) { + ngx_http_file_cache_free(r->cache, u->pipe->temp_file); + } + +#endif + ngx_http_upstream_upgrade(r, u); return; } @@ -2790,6 +2799,14 @@ ngx_http_upstream_send_response(ngx_http if (!u->buffering) { +#if (NGX_HTTP_CACHE) + + if (r->cache) { + ngx_http_file_cache_free(r->cache, u->pipe->temp_file); + } + +#endif + if (u->input_filter == NULL) { u->input_filter_init = ngx_http_upstream_non_buffered_filter_init; u->input_filter = ngx_http_upstream_non_buffered_filter;