BUG/MINOR: mux-h2: Reset streams with NO_ERROR code if full response was already...
authorChristopher Faulet <cfaulet@haproxy.com>
Mon, 17 Mar 2025 15:26:35 +0000 (16:26 +0100)
committerWilly Tarreau <w@1wt.eu>
Thu, 20 Mar 2025 09:54:38 +0000 (10:54 +0100)
commita8af2c733890746cc53ef73553a2f2d699326cd2
tree75d41a3b6274d4bbb4c35552ea3352fdac418130
parent411e02e84eb36ca15292ad2337680dc986b57f34
BUG/MINOR: mux-h2: Reset streams with NO_ERROR code if full response was already sent

On frontend side, when a stream is shut while the response was already fully
sent, it was cancelled by sending a RST_STREAM(CANCEL) frame. However, it is
not accurrate. CANCEL error code must only be used if the response headers
were sent, but not the full response. As stated in the RFC 9113, when the
response was fully sent, to stop the request sending, a RST_STREAM with an
error code of NO_ERROR must be sent.

This patch should solve the issue #1219. It must be backported to all stable
versions.

(cherry picked from commit e87397bc7d3b386c95d1489d19f29e6d5f1f1482)
Signed-off-by: Willy Tarreau <w@1wt.eu>
src/mux_h2.c