BUG/MEDIUM: mux-h2: Don't report an error on shutr if a shutw is pending

If a shutw is blocked because the mux is full or busy, we must defer the
shutr. In this case, the H2 stream is not in H2_SS_CLOSED state because the
shutw is also deferred. If the shutr is performed, this will lead to a
error.

Concretly, when the mux is unblocked, a RST_STREAM is sent while in some
cases, an empty DATA frame with ES flag set could be sent.

This patch should be backported to all stable versions.

(cherry picked from commit 1fdfa4f9ba047aad76e1c7b4e894edf966f0a724)
Signed-off-by: Amaury Denoyelle <adenoyelle@haproxy.com>
(cherry picked from commit 24b85803f1399b90ca3610f5cdc4deafb656b94d)
Signed-off-by: Amaury Denoyelle <adenoyelle@haproxy.com>
(cherry picked from commit a77a82de7431f471435a0951b32a2dd2c374af03)
Signed-off-by: Amaury Denoyelle <adenoyelle@haproxy.com>
(cherry picked from commit a49c9af67b00b52647b5f058ebff00b2f6a8e0fc)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
1 file changed