BUG/MEDIUM: mux-h1: Handle h1_process() failures on a pipelined request
authorChristopher Faulet <cfaulet@haproxy.com>
Fri, 18 Dec 2020 14:13:47 +0000 (15:13 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 6 Jan 2021 13:35:02 +0000 (14:35 +0100)
commit43b1cfa62aebbd8623297c423f5c9ab6901fba8e
tree173a84f06e3def98616dc024fe788aa6a3f35838
parent0d4da8c908526e919c103e9ff39786decc5ec787
BUG/MEDIUM: mux-h1: Handle h1_process() failures on a pipelined request

On frontend side, when a conn-stream is detached from a H1 connection, the
H1 stream is destroyed and if we already have some data to parse (a
pipelined request), we process these data immedialtely calling
h1_process(). Then we adjust the H1 connection timeout. But h1_process() may
fail and release the H1 connection. For instance, a parsing error may be
reported. Thus, when that happens, we must not use anymore the H1 connection
and exit.

This patch must be backported as far as the 2.2. This bug can impact the 2.3
and the 2.2, in theory, if h1 stream creation fails. But, concretly, it only
fails on the 2.4 because the requests are now parsed at this step.

(cherry picked from commit 0c366a87619206d1bf1c9f69698933d0e58b7be5)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
src/mux_h1.c