]> git.kaiwu.me - haproxy.git/commit
BUG/MEDIUM: mux-h2: Don't send CANCEL on shutw when response length is unkown
authorChristopher Faulet <cfaulet@haproxy.com>
Fri, 13 Jan 2023 10:28:31 +0000 (11:28 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Fri, 13 Jan 2023 10:28:32 +0000 (11:28 +0100)
commit462f52260c0685696b1521ef9e5276b98ba98cde
tree820144c95c9ed8598dd290428d5863b0eb442358
parent4da82395d8bb8af1cf90a9e4e98fd666ef11cb16
BUG/MEDIUM: mux-h2: Don't send CANCEL on shutw when response length is unkown

Since commit 473e0e54 ("BUG/MINOR: mux-h2: send a CANCEL instead of ES on
truncated writes"), a CANCEL may be reported when the response length is
unkown. It happens for H1 reponses without "Content-lenght" or
"Transfer-encoding" header.

Indeed, in this case, the end of the reponse is detected when the server
connection is closed. On the fontend side, the H2 multiplexer handles this
event as an abort and sensd a RST_STREAM frame with CANCEL error code.

The issue is not with the above commit but with the commit 4877045f1
("MINOR: mux-h2: make streams know if they need to send more data"). The
H2_SF_MORE_HTX_DATA flag must only be set if the payload length can be
determined.

This patch should fix the issue #1992. It must be backported to 2.7.
src/mux_h2.c