]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MEDIUM: mux-h2: Set ES flag when necessary on 0-copy data forwarding
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 27 Aug 2024 17:16:07 +0000 (19:16 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 28 Aug 2024 08:05:34 +0000 (10:05 +0200)
commit4ef5251c44b83ed2f9495d200827f8696f16cd60
tree51409822377ae0f1e328737b62ab1cbc290317b4
parent0d142e0756986b56819ecb2d131a0c4b30ae899f
BUG/MEDIUM: mux-h2: Set ES flag when necessary on 0-copy data forwarding

When DATA frames are sent via the 0-copy data forwarding, we must take care
to set the ES flag on the last DATA frame. It should be performed in
h2_done_ff() when IOBUF_FL_EOI flag was set by the producer. This flag is
here to know when the producer has reached the end of input. When this
happens, the h2s state is also updated. It is switched to "half-closed
local" or "closed" state depending on its previous state.

It is mainly an issue on uploads because the server may be blocked waiting
for the end of the request. A workaround is to disable the 0-copy forwarding
support the the H2 by setting "tune.h2.zero-copy-fwd-send" directive to off
in your global section.

This patch should fix the issue #2665. It must be backported as far as 2.9.
src/mux_h2.c