From: Christopher Faulet Date: Tue, 9 Sep 2025 13:46:30 +0000 (+0200) Subject: BUG/MINOR: mux-h2: Remove H2_CF_DEM_DFULL flags when the demux buffer is reset X-Git-Tag: v3.3-dev9~189 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3b7112aa1db487083497c1b03897f0924809a6bd;p=thirdparty%2Fhaproxy.git BUG/MINOR: mux-h2: Remove H2_CF_DEM_DFULL flags when the demux buffer is reset This only happens when a connection error is detected or when the H2 connection is in ERR/ERR2 state. The demux buffer is explicitly reset. In that case, it is important to remove the flag reporting this buffer as full. It is probably worth to backport this patch to 3.2. But it is not mandatory on older versions because it does not fix any known issue. --- diff --git a/src/mux_h2.c b/src/mux_h2.c index 457df083f..f6a653396 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -5069,8 +5069,10 @@ static int h2_process(struct h2c *h2c) if (h2c->glitches != prev_glitches && !(h2c->flags & H2_CF_IS_BACK)) session_add_glitch_ctr(h2c->conn->owner, h2c->glitches - prev_glitches); - if (h2c->st0 >= H2_CS_ERROR || (h2c->flags & H2_CF_ERROR)) + if (h2c->st0 >= H2_CS_ERROR || (h2c->flags & H2_CF_ERROR)) { b_reset(&h2c->dbuf); + h2c->flags &= ~H2_CF_DEM_DFULL; + } } was_blocked |= !!(h2c->flags & H2_CF_DEM_MROOM); h2_send(h2c);