BUG/MEDIUM: stconn: Move data from <kip> to <kop> during zero-copy forwarding

The <kip> of producer was not forwarded to <kop> of consumer when zero-copy
data forwarding was tried. Because of the issue, the chunking of emitted H1
messages could be invalid.

To fix the bug, sc_ep_fwd_kip() must be called at this stage.

This fix is related to the previous one (529a8dbfb "BUG/MEDIUM: mux-h1: Take
care to update <kop> value during zero-copy forwarding"). Both are required
to fully fix the issue #3230.

This patch must be backported to 3.3.
This commit is contained in:
Christopher Faulet 2026-01-06 15:36:23 +01:00
parent 97490a7789
commit 83457b9e38

View File

@ -1351,6 +1351,7 @@ int sc_conn_recv(struct stconn *sc)
flags |= CO_RFL_BUF_FLUSH;
goto abort_fastfwd;
}
sc_ep_fwd_kip(sc, sc_opposite(sc));
ret = conn->mux->fastfwd(sc, ic->to_forward, flags);
if (ret < 0)
goto abort_fastfwd;
@ -2033,6 +2034,7 @@ int sc_applet_recv(struct stconn *sc)
flags |= CO_RFL_BUF_FLUSH;
goto abort_fastfwd;
}
sc_ep_fwd_kip(sc, sc_opposite(sc));
ret = appctx_fastfwd(sc, ic->to_forward, flags);
if (ret < 0)
goto abort_fastfwd;