Any update on getting this PR merged? I'm also facing the same issue
> On 21 Mar 2024, at 08:30, Nejc Lovrencic <nejc.lovren...@gmail.com> wrote: > > # HG changeset patch > # User Nejc Lovrencic <nejc.lovren...@gmail.com> > # Date 1711005111 -3600 > # Thu Mar 21 08:11:51 2024 +0100 > # Node ID 8d38e6642e82bb219bb5b586f1dcca5222a036e8 > # Parent 89bff782528a91ad123b63b624f798e6fd9c8e68 > proxy_cache_lock: Make lock timer configurable > > Default timer is set to 500ms. This in a worst-case scenario adds 500ms > latency to MISS requests. This commit adds proxy_cache_lock_wait_time > directive, which makes the timer configurable. > > diff -r 89bff782528a -r 8d38e6642e82 src/http/modules/ngx_http_proxy_module.c > --- a/src/http/modules/ngx_http_proxy_module.c Wed Feb 14 20:03:00 > 2024 +0400 > +++ b/src/http/modules/ngx_http_proxy_module.c Thu Mar 21 08:11:51 > 2024 +0100 > @@ -592,6 +592,12 @@ > offsetof(ngx_http_proxy_loc_conf_t, upstream.cache_lock_age), > NULL }, > > + { ngx_string("proxy_cache_lock_wait_time"), > + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, > + ngx_conf_set_msec_slot, > + NGX_HTTP_LOC_CONF_OFFSET, > + offsetof(ngx_http_proxy_loc_conf_t, upstream.cache_lock_wait_time), > + NULL }, > { ngx_string("proxy_cache_revalidate"), > NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, > ngx_conf_set_flag_slot, > @@ -3390,6 +3396,7 @@ > conf->upstream.cache_lock = NGX_CONF_UNSET; > conf->upstream.cache_lock_timeout = NGX_CONF_UNSET_MSEC; > conf->upstream.cache_lock_age = NGX_CONF_UNSET_MSEC; > + conf->upstream.cache_lock_wait_time = NGX_CONF_UNSET_MSEC; > conf->upstream.cache_revalidate = NGX_CONF_UNSET; > conf->upstream.cache_convert_head = NGX_CONF_UNSET; > conf->upstream.cache_background_update = NGX_CONF_UNSET; > @@ -3705,6 +3712,9 @@ > ngx_conf_merge_msec_value(conf->upstream.cache_lock_age, > prev->upstream.cache_lock_age, 5000); > > + ngx_conf_merge_msec_value(conf->upstream.cache_lock_wait_time, > + prev->upstream.cache_lock_wait_time, 500); > + > ngx_conf_merge_value(conf->upstream.cache_revalidate, > prev->upstream.cache_revalidate, 0); > > diff -r 89bff782528a -r 8d38e6642e82 src/http/ngx_http_cache.h > --- a/src/http/ngx_http_cache.h Wed Feb 14 20:03:00 2024 +0400 > +++ b/src/http/ngx_http_cache.h Thu Mar 21 08:11:51 2024 +0100 > @@ -103,6 +103,7 @@ > ngx_msec_t lock_timeout; > ngx_msec_t lock_age; > ngx_msec_t lock_time; > + ngx_msec_t lock_wait_time; > ngx_msec_t wait_time; > > ngx_event_t wait_event; > diff -r 89bff782528a -r 8d38e6642e82 src/http/ngx_http_file_cache.c > --- a/src/http/ngx_http_file_cache.c Wed Feb 14 20:03:00 2024 +0400 > +++ b/src/http/ngx_http_file_cache.c Thu Mar 21 08:11:51 2024 +0100 > @@ -452,7 +452,10 @@ > > timer = c->wait_time - now; > > - ngx_add_timer(&c->wait_event, (timer > 500) ? 500 : timer); > + ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, > + "http file cache lock timer tm:%M lwt:%M", timer, > c->lock_wait_time); > + > + ngx_add_timer(&c->wait_event, (timer > c->lock_wait_time) ? > c->lock_wait_time : timer); > > r->main->blocked++; > > @@ -531,7 +534,7 @@ > ngx_shmtx_unlock(&cache->shpool->mutex); > > if (wait) { > - ngx_add_timer(&c->wait_event, (timer > 500) ? 500 : timer); > + ngx_add_timer(&c->wait_event, (timer > c->lock_wait_time) ? > c->lock_wait_time : timer); > return NGX_AGAIN; > } > > diff -r 89bff782528a -r 8d38e6642e82 src/http/ngx_http_upstream.c > --- a/src/http/ngx_http_upstream.c Wed Feb 14 20:03:00 2024 +0400 > +++ b/src/http/ngx_http_upstream.c Thu Mar 21 08:11:51 2024 +0100 > @@ -894,6 +894,7 @@ > c->lock = u->conf->cache_lock; > c->lock_timeout = u->conf->cache_lock_timeout; > c->lock_age = u->conf->cache_lock_age; > + c->lock_wait_time = u->conf->cache_lock_wait_time; > > u->cache_status = NGX_HTTP_CACHE_MISS; > } > diff -r 89bff782528a -r 8d38e6642e82 src/http/ngx_http_upstream.h > --- a/src/http/ngx_http_upstream.h Wed Feb 14 20:03:00 2024 +0400 > +++ b/src/http/ngx_http_upstream.h Thu Mar 21 08:11:51 2024 +0100 > @@ -204,6 +204,7 @@ > ngx_flag_t cache_lock; > ngx_msec_t cache_lock_timeout; > ngx_msec_t cache_lock_age; > + ngx_msec_t cache_lock_wait_time; > > ngx_flag_t cache_revalidate; > ngx_flag_t cache_convert_head; > _______________________________________________ > nginx-devel mailing list > nginx-devel@nginx.org > https://mailman.nginx.org/mailman/listinfo/nginx-devel _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org https://mailman.nginx.org/mailman/listinfo/nginx-devel