Welcome! Log In Create A New Profile

Advanced

[nginx] Upstream: avoid holding a cache node with upgraded connections.

Maxim Dounin
November 03, 2016 10:12AM
details: http://hg.nginx.org/nginx/rev/93b294c5d581
branches:
changeset: 6794:93b294c5d581
user: Maxim Dounin <mdounin@mdounin.ru>
date: Thu Nov 03 17:09:32 2016 +0300
description:
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.

diffstat:

src/http/ngx_http_upstream.c | 17 +++++++++++++++++
1 files changed, 17 insertions(+), 0 deletions(-)

diffs (34 lines):

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;

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] Upstream: avoid holding a cache node with upgraded connections.

Maxim Dounin 437 November 03, 2016 10:12AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 257
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready