]> git.kaiwu.me - haproxy.git/commit
BUG/MEDIUM: stconn: Report a blocked send if some output data are not consumed
authorChristopher Faulet <cfaulet@haproxy.com>
Mon, 27 Feb 2023 15:38:12 +0000 (16:38 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Mon, 27 Feb 2023 16:45:45 +0000 (17:45 +0100)
commit59b240c30ca03fb46e0a0c63af0cff54274702b3
treee7877e79abfe39aba99a872cc79a5de86adf82f9
parent8aabc8ebfd4514c3b3290ac2ddf6a2281e01dadb
BUG/MEDIUM: stconn: Report a blocked send if some output data are not consumed

Instead of reporting a blocked send if nothing is send, we do it if some
output data remain blocked after a write attempts or after a call the the
applet's I/O handler. It is mandatory to properly handle write timeouts.

Indeed, if an endpoint is blocked for a while but it partially consumed
output data, no timeout is triggered. It is especially true for
connections. But the same may happen for applet, there is no reason.

Of course, if the endpoint decides to partially consume output data because
it must wait to move on for any reason, it should use the se/applet API
(se/applet_will_consume(), se/applet_wont_consume() and
se/applet_need_more_data()).

This bug was introduced during the channels timeouts refactoring. No
backport is needed.
src/applet.c
src/stconn.c