BUG/MEDIUM: hlua: Properly report EOS when http applet exits
Some checks are pending
Contrib / admin/halog/ (push) Waiting to run
Contrib / dev/flags/ (push) Waiting to run
Contrib / dev/haring/ (push) Waiting to run
Contrib / dev/hpack/ (push) Waiting to run
Contrib / dev/poll/ (push) Waiting to run
FreeBSD / clang (push) Waiting to run
VTest / Generate Build Matrix (push) Waiting to run
VTest / (push) Blocked by required conditions
Windows / Windows, gcc, all features (push) Waiting to run

When the Lua HTTP applet was migrated to the new API to use its own buffers,
a regression was introduced. The EOS flag at the end of the response was no
longer set. While it is not an issue when the response length is known
(because of a content-length or a transfer-encoding header), it is an issue
for responses with an unkown payload size. For the stconn and the stream, in
that case, the EOS is used to detect the end of the response. Without this
info, the stream remains blocked.

To fix the issue, the EOS flag is now set as expected on the applet.

This patch should fix the issue #3422. It must be backport as far as 3.3.
This commit is contained in:
Christopher Faulet 2026-06-22 07:57:51 +02:00
parent 9854b6f983
commit e79af3d846

View file

@ -11078,6 +11078,7 @@ void hlua_applet_http_fct(struct appctx *ctx)
res_htx->flags |= HTX_FL_EOM;
htx_to_buf(res_htx, outbuf);
applet_set_eoi(ctx);
applet_set_eos(ctx);
http_ctx->flags |= APPLET_RSP_SENT;
}