From a7a8f2c9187288e7cedd48c8faa9cf5773bfc90b Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Fri, 13 Oct 2017 19:15:22 +0100 Subject: [PATCH] [Fix] Fix processing of idempotent rules when autolearn fails Issue: #1846 --- src/libserver/task.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/libserver/task.c b/src/libserver/task.c index 4aa2e21ad..04ce2b759 100644 --- a/src/libserver/task.c +++ b/src/libserver/task.c @@ -768,12 +768,18 @@ rspamd_task_process (struct rspamd_task *task, guint stages) if (!(task->flags & RSPAMD_TASK_FLAG_LEARN_AUTO)) { task->err = stat_error; + task->processed_stages |= RSPAMD_TASK_STAGE_DONE; } - else if (stat_error) { - g_error_free (stat_error); - } + else { + /* Do not skip idempotent in case of learn error */ + if (stat_error) { + g_error_free (stat_error); + } - task->processed_stages |= RSPAMD_TASK_STAGE_DONE; + task->processed_stages |= RSPAMD_TASK_STAGE_LEARN| + RSPAMD_TASK_STAGE_LEARN_PRE| + RSPAMD_TASK_STAGE_LEARN_POST; + } } } } -- 2.39.5