]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
Revert "BUG/MEDIUM: mux-h2: make sure to always report pending errors to the stream"
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 17 Mar 2026 07:48:49 +0000 (08:48 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Mon, 23 Mar 2026 13:02:43 +0000 (14:02 +0100)
This reverts commit 44932b6c417e472d25039ec3d7b8bf14e07629bc.

The patch above was only necessary to handle partial headers or trailers
parsing. There was nothing to prevent the H2 multiplexer to start to add
headers or trailers in an HTX message and to stop the processing on error,
leaving the HTX message with no EOH/EOT block.

From the HTX API point of view, it is unexepected. And this was fixed thanks
to the commit ba7dc46a9 ("BUG/MINOR: h2/h3: Never insert partial
headers/trailers in an HTX message").

So this patch can be reverted. It is important to not report a parsign error
too early, when there are still data to transfer to the upper layer.

This patch must be backport where 44932b6c4 was backported but only after
backporting ba7dc46a9 first.

src/mux_h2.c

index 692cf6071fff97a2aff799866d90a5a5f0c70185..4508b18596d02a4fd9dca69f97952d94900fa78a 100644 (file)
@@ -7938,13 +7938,7 @@ static size_t h2_rcv_buf(struct stconn *sc, struct buffer *buf, size_t count, in
 
        /* tell the stream layer whether there are data left or not */
        if (h2s_rxbuf_cnt(h2s)) {
-               /* Note that parsing errors can also arrive here, we may need
-                * to propagate errors upstream otherwise no new activity will
-                * unblock them.
-                */
                se_fl_set(h2s->sd, SE_FL_RCV_MORE | SE_FL_WANT_ROOM);
-               if (h2s_htx && h2s_htx->flags & HTX_FL_PARSING_ERROR)
-                       h2s_propagate_term_flags(h2c, h2s);
                BUG_ON_HOT(!buf->data);
        }
        else {