From b1e600c9c5e4a20a6de1f3b9593f20dc50f01315 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 13 Oct 2020 18:09:15 +0200 Subject: [PATCH] BUG/MINOR: mux-h2: do not stop outgoing connections on stopping There are reports of a few "SC" in logs during reloads when H2 is used on the backend side. Christopher analysed this as being caused by the proxy disabled test in h2_process(). As the comment says, this was done for frontends only, and must absolutely not send a GOAWAY to the backend, as all it will result in is to make newly queued streams fail. The fix consists in simply testing the connection side before deciding to send the GOAWAY. This may be backported as far as 2.0, though for whatever reason it seems to manifest itself only since 2.2 (probably due to changes in the outgoing connection setup sequence). --- src/mux_h2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mux_h2.c b/src/mux_h2.c index 1b73d2b46f..307bf90123 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -3609,7 +3609,7 @@ static int h2_process(struct h2c *h2c) } h2_send(h2c); - if (unlikely(h2c->proxy->disabled)) { + if (unlikely(h2c->proxy->disabled) && !(h2c->flags & H2_CF_IS_BACK)) { /* frontend is stopping, reload likely in progress, let's try * to announce a graceful shutdown if not yet done. We don't * care if it fails, it will be tried again later. -- 2.47.3