BUG/MEDIUM: applet: State appctx have more data if its EOI/EOS/ERROR flag is set

It is an harmless bug for now because only stats and cache applets are using
their own buffers and it is not possible to trigger this bug with these
applets. However, it remains important to try a receive if EOI, EOS or ERROR
is reached by the applet while no data was produced. Otherwise, it is not
possible to ack these events at the SE level.

No backport needed.
This commit is contained in:
Christopher Faulet 2024-02-15 17:27:08 +01:00
parent d2403a412c
commit b8ca114031

View File

@ -910,7 +910,8 @@ struct task *task_process_applet(struct task *t, void *context, unsigned int sta
TRACE_POINT(APPLET_EV_PROCESS, app);
if (b_data(&app->outbuf) || se_fl_test(app->sedesc, SE_FL_MAY_FASTFWD_PROD))
if (b_data(&app->outbuf) || se_fl_test(app->sedesc, SE_FL_MAY_FASTFWD_PROD) ||
applet_fl_test(app, APPCTX_FL_EOI|APPCTX_FL_EOS|APPCTX_FL_ERROR))
applet_have_more_data(app);
sc_applet_sync_recv(sc);