From b8ca114031253a51975dbd940d3de46f4c3b710a Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Thu, 15 Feb 2024 17:27:08 +0100 Subject: [PATCH] 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. --- src/applet.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/applet.c b/src/applet.c index def5c2aff6..90aa89f5da 100644 --- a/src/applet.c +++ b/src/applet.c @@ -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); -- 2.39.5