From: Christopher Faulet Date: Thu, 21 Apr 2022 09:30:43 +0000 (+0200) Subject: BUG/MINOR: cache: Disable cache if applet creation fails X-Git-Tag: v2.6-dev7~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1d216c7ec1815c510bd3c6a1152cf41f748f93e0;p=thirdparty%2Fhaproxy.git BUG/MINOR: cache: Disable cache if applet creation fails When we want to serve a resource from the cache, if the applet creation fails, the "cache-use" action must not yield. Otherwise, the stream will hang. Instead, we now disable the cache. Thus the request may be served by the server. This patch must be backported as far as 1.8. --- diff --git a/src/cache.c b/src/cache.c index 94f4e7c10b..9375faf9c6 100644 --- a/src/cache.c +++ b/src/cache.c @@ -1830,10 +1830,11 @@ enum act_return http_action_req_cache_use(struct act_rule *rule, struct proxy *p _HA_ATOMIC_INC(&px->be_counters.p.http.cache_hits); return ACT_RET_CONT; } else { + s->target = NULL; shctx_lock(shctx_ptr(cache)); shctx_row_dec_hot(shctx_ptr(cache), entry_block); shctx_unlock(shctx_ptr(cache)); - return ACT_RET_YIELD; + return ACT_RET_CONT; } } shctx_unlock(shctx_ptr(cache));