From c010c3924a4affc12ab6462c0b6970053353e903 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Fri, 3 Apr 2026 15:12:54 +0200 Subject: [PATCH] BUG/MEDIUM: mux-h1: Disable 0-copy forwarding when draining the request When an early response is sent to the client and the H1 connection is switched to the draining state, we must take care to disable the 0-copy data forwarding because the backend side is no longer here. It is an issue because this prevent any regular receive to be performed. This patch should fix the issue #3316. It must be backported as far as 3.0. --- src/mux_h1.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mux_h1.c b/src/mux_h1.c index d165b88d6..11aaa345b 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -4672,6 +4672,7 @@ static void h1_detach(struct sedesc *sd) if (h1c->state == H1_CS_RUNNING && !(h1c->flags & H1C_F_IS_BACK) && h1s->req.state != H1_MSG_DONE) { h1c->state = H1_CS_DRAINING; + h1c->flags &= ~H1C_F_WANT_FASTFWD; h1c_report_term_evt(h1c, muxc_tevt_type_graceful_shut); COUNT_IF(1, "Deferring H1S destroy to drain message"); TRACE_DEVEL("Deferring H1S destroy to drain message", H1_EV_STRM_END, h1s->h1c->conn, h1s);