]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MEDIUM: mux-h2: make sure to always notify streams of EOS condition
authorWilly Tarreau <w@1wt.eu>
Mon, 25 Mar 2019 17:13:16 +0000 (18:13 +0100)
committerWilly Tarreau <w@1wt.eu>
Mon, 25 Mar 2019 17:13:16 +0000 (18:13 +0100)
commita27db38f121203fd337ffa394101db9dde12645a
tree92286fd48a7103b08540dd184be4543cebe7b866
parenta33d39a1b15459ac34b4228b2510eba97a4f0c85
BUG/MEDIUM: mux-h2: make sure to always notify streams of EOS condition

Recent commit 63768a63d ("MEDIUM: mux-h2: Don't mix the end of the message
with the end of stream") introduced a race which may manifest itself with
small connection counts on large objects and large server timeouts in
legacy mode. Sometimes h2s_close() is called while the data layer is
subscribed to read events but nothing in the chain can cause this wake-up
to happen and some streams stall for a while at the end of a transfer
until the server timeout strikes and ends the stream completes.

We need to wake the stream up if it's subscribed to rx events there,
which is what this patch does. When the patch above is backported to
1.9, this patch will also have to be backported.
src/mux_h2.c