From 6ff91e20232821e8b59bb0bbd36ea7e851b42566 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 14 Apr 2022 11:43:35 +0200 Subject: [PATCH] BUG/MINOR: mux-h2: do not use timeout http-keep-alive on backend side Commit 15a4733d5 ("BUG/MEDIUM: mux-h2: make use of http-request and keep-alive timeouts") omitted to check the side of the connection, and as a side effect, automatically enabled timeouts on idle backend connections, which is totally contrary to the principle that they must be autonomous. This needs to be backported wherever the patch above is backported. --- src/mux_h2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mux_h2.c b/src/mux_h2.c index 3b321d5e2..8cf79ae2e 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -722,7 +722,7 @@ static void h2c_update_timeout(struct h2c *h2c) } else if (br_data(h2c->mbuf)) { /* pending output data: always the regular data timeout */ h2c->task->expire = tick_add_ifset(now_ms, h2c->timeout); - } else if (h2c->max_id > 0 && !b_data(&h2c->dbuf)) { + } else if (!(h2c->flags & H2_CF_IS_BACK) && h2c->max_id > 0 && !b_data(&h2c->dbuf)) { /* idle after having seen one stream => keep-alive */ h2c->task->expire = tick_add_ifset(h2c->idle_start, h2c->proxy->timeout.httpka); is_idle_conn = 1;