mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-03 10:42:07 +00:00
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.
This commit is contained in:
parent
d0b04920d1
commit
1fdfa4f9ba
@ -4663,6 +4663,9 @@ static void h2_do_shutr(struct h2s *h2s)
|
||||
|
||||
TRACE_ENTER(H2_EV_STRM_SHUT, h2c->conn, h2s);
|
||||
|
||||
if (h2s->flags & H2_SF_WANT_SHUTW)
|
||||
goto add_to_list;
|
||||
|
||||
/* a connstream may require us to immediately kill the whole connection
|
||||
* for example because of a "tcp-request content reject" rule that is
|
||||
* normally used to limit abuse. In this case we schedule a goaway to
|
||||
|
Loading…
Reference in New Issue
Block a user