Merge pull request #10151 from jefferyto/python-bpo-38243-34155
[feed/packages.git] / net / haproxy / patches / 005-BUG-MEDIUM-stream-int-Process-connection-CS-errors-during-synchronous-sends.patch
1 commit a80c11777b09ea494b5da76a5bcb096851fb6097
2 Author: Christopher Faulet <cfaulet@haproxy.com>
3 Date: Mon Sep 23 16:11:57 2019 +0200
4
5 BUG/MEDIUM: stream-int: Process connection/CS errors during synchronous sends
6
7 If an error occurred on the connection or the conn-stream, no syncrhonous send
8 is performed. If the error was not already processed and there is no more I/O,
9 it will never be processed and the stream will never be notified of this
10 error. This may block the stream until a timeout is reached or infinitly if
11 there is no timeout.
12
13 Concretly, this bug can be triggered time to time with h2spec, running the test
14 "http2/5.1.1/2".
15
16 This patch depends on the commit 328ed220a "BUG/MINOR: stream-int: Process
17 connection/CS errors first in si_cs_send()". Both must be backported to 2.0 and
18 probably to 1.9. In 1.9, the code is totally different, so this patch would have
19 to be adapted.
20
21 (cherry picked from commit e55a5a41713b629d349ba020183744a38129b892)
22 Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
23
24 diff --git a/src/stream_interface.c b/src/stream_interface.c
25 index 4130444e..ef0fea7f 100644
26 --- a/src/stream_interface.c
27 +++ b/src/stream_interface.c
28 @@ -922,12 +922,6 @@ void si_sync_send(struct stream_interface *si)
29 if (!cs)
30 return;
31
32 - if (cs->flags & (CS_FL_ERROR|CS_FL_ERR_PENDING))
33 - return;
34 -
35 - if (cs->conn->flags & CO_FL_ERROR)
36 - return;
37 -
38 si_cs_send(cs);
39 }
40