From: Alexander Moisseev Date: Fri, 10 Apr 2026 10:37:38 +0000 (+0300) Subject: [Fix] Check per-worker task_timeout overrides in configtest X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c3ca8aa09216bf0d93f50ac765ab727c1207db61;p=thirdparty%2Frspamd.git [Fix] Check per-worker task_timeout overrides in configtest The previous fix only validated cfg->task_timeout, missing cases where individual workers (normal, controller) override task_timeout in their own config section. Iterate cfg->workers and check each worker's effective timeout via its UCL options object. --- diff --git a/src/rspamadm/configtest.c b/src/rspamadm/configtest.c index de57efd32d..7d06bdf9df 100644 --- a/src/rspamadm/configtest.c +++ b/src/rspamadm/configtest.c @@ -156,6 +156,19 @@ rspamadm_configtest(int argc, char **argv, const struct rspamadm_command *cmd) if (ret) { rspamd_worker_check_and_adjust_timeout(cfg, cfg->task_timeout); + /* Also check per-worker task_timeout overrides */ + for (GList *cur = cfg->workers; cur != NULL; cur = g_list_next(cur)) { + struct rspamd_worker_conf *wcf = (struct rspamd_worker_conf *) cur->data; + if (wcf->options) { + const ucl_object_t *to = ucl_object_lookup(wcf->options, "task_timeout"); + if (to == NULL) { + to = ucl_object_lookup(wcf->options, "check_timeout"); + } + if (to != NULL) { + rspamd_worker_check_and_adjust_timeout(cfg, ucl_object_todouble(to)); + } + } + } } if (ret) {