]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MEDIUM: mux-h2: always restart reading if data are available
authorWilly Tarreau <w@1wt.eu>
Thu, 3 Jan 2019 07:27:41 +0000 (08:27 +0100)
committerWilly Tarreau <w@1wt.eu>
Thu, 3 Jan 2019 08:28:59 +0000 (09:28 +0100)
commit872e2fac397cf931f237ae9c6ad3c56ec105f417
tree97e70cac15d04f42eb22e7e6fd91c80f3358c857
parent880f58049226e842e36e286a1653b714e8075b82
BUG/MEDIUM: mux-h2: always restart reading if data are available

h2c_restart_reading() is used at various place to resume processing of
demux data, but this one refrains from doing so if the mux is already
subscribed for receiving. It just happens that even if some incoming
frame processing is interrupted, the mux is always subscribed for
receiving, so this condition alone is not enough, it must be combined
with the fact that the demux buffer is empty, otherwise some resume
events are lost. This typically happens when we refrain from processing
some incoming data due to missing room in the stream's rxbuf, and want
to resume in h2c_rcv_buf(). It will become even more visible with trailers
since these ones want to have an empty rxbuf before proceeding.

This must be backported to 1.9.
src/mux_h2.c