From 854888497ea312c0cde518ab5040478531052f18 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Thu, 16 Oct 2025 11:22:22 +0200 Subject: [PATCH] BUG/MEDIUM: applet: Improve again spinning loops detection with the new API A first attempt to fix this issue was already pushed (54b7539d6 "BUG/MEDIUM: apppet: Improve spinning loop detection with the new API"). But it not was fully accurrate. Indeed, we must check if something was received or sent by the applet before incrementing the call rate. But we must also take care the applet is allowed to receive or send data. That is what is performed in this patch. This patch must be backported as far as 3.0 with the patch above. --- src/applet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/applet.c b/src/applet.c index 4b55bf9b5..af4e3fe05 100644 --- a/src/applet.c +++ b/src/applet.c @@ -968,7 +968,7 @@ struct task *task_process_applet(struct task *t, void *context, unsigned int sta } /* measure the call rate and check for anomalies when too high */ - if (!did_recv && !did_send) { + if ((!did_recv && sc_is_send_allowed(sc)) && (!did_send && sc_is_recv_allowed(sc))) { rate = update_freq_ctr(&app->call_rate, 1); if (rate >= 100000 && app->call_rate.prev_ctr) // looped like this more than 100k times over last second stream_dump_and_crash(&app->obj_type, read_freq_ctr(&app->call_rate));