BUG/MEDIUM: stconn: Wait iobuf is empty to shut SE down during a check send
authorChristopher Faulet <cfaulet@haproxy.com>
Thu, 10 Oct 2024 08:34:23 +0000 (10:34 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 23 Oct 2024 15:21:33 +0000 (17:21 +0200)
commit38b1197a7898a99f06a067b85de172347c9debe7
tree9e25330cc1adb1e75cd8e897eb5468bded0a12da
parentd356446984fd9051877a3257291b7b550a85b5f1
BUG/MEDIUM: stconn: Wait iobuf is empty to shut SE down during a check send

When a send attempt is performed on the opposite side from sc_notify() and
all outgoing data are sent while a shut was scheduled, the SE is shut down
because we consider all data were sent and no more are expected. However,
here we must also be carefull to have sent all pending data in the
iobuf. Indeed, some spliced data may be blocked. In this case, if the SE is
shut down, these data may be lost.

This patch should fix the original bug reported in #2749. It must be
backported as far as 2.9.

(cherry picked from commit 48f1e2b6fe8457bb5b9d8db9447157c244d871b7)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
src/stconn.c