From 7d518454bb501659e8b13f38c22d216f5485be34 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Mon, 31 Aug 2020 11:07:07 +0200 Subject: [PATCH] BUG/MEDIUM: http-ana: Don't wait to send 1xx responses received from servers When an informational response (1xx) is received, we must be sure to send it ASAP. To do so, CF_SEND_DONTWAIT flag must be set on the response channel to instruct the stream-interface to not set the CO_SFL_MSG_MORE flag on the transport layer. Otherwise the response delivery may be delayed, because of the commit 8945bb6c0 ("BUG/MEDIUM: stream-int: fix loss of CO_SFL_MSG_MORE flag in forwarding"). Note that a previous patch (cf6898cd ["BUG/MINOR: http-ana: Don't wait to send 1xx responses generated by HAProxy"]) add this flag on 1xx responses generated by HAProxy but not on responses coming from servers. This patch must be backported to 2.2 and may be backported as far as 1.9, for HTX part only. But this part has changed in the 2.2, so it may be a bit tricky. Note it does not fix any known bug on 2.1 and below because the CO_SFL_MSG_MORE flag is ignored by the h1 mux. --- src/http_ana.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/http_ana.c b/src/http_ana.c index ac2990e..39f75de 100644 --- a/src/http_ana.c +++ b/src/http_ana.c @@ -1757,6 +1757,7 @@ int http_wait_for_response(struct stream *s, struct channel *rep, int an_bit) msg->flags = 0; txn->status = 0; s->logs.t_data = -1; /* was not a response yet */ + rep->flags |= CF_SEND_DONTWAIT; /* Send ASAP informational messages */ goto next_one; } -- 1.7.10.4