]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Reset autolearn flag when doing manual learn
authorVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 27 Sep 2025 14:02:06 +0000 (15:02 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 27 Sep 2025 14:02:06 +0000 (15:02 +0100)
src/controller.c
src/libstat/stat_process.c

index 6e0e4cac1eebc23d65dafe2f32b17d38cf90f03a..31d8bd90044a7f29f3918870e462215e341333e0 100644 (file)
@@ -2147,6 +2147,8 @@ rspamd_controller_handle_learn_common(
                                                   session->ctx->lang_det, ctx->event_loop, FALSE);
 
        task->resolver = ctx->resolver;
+       /* Manual learn: ensure errors are propagated (not auto-learn semantics) */
+       task->flags &= ~RSPAMD_TASK_FLAG_LEARN_AUTO;
        task->s = rspamd_session_create(session->pool,
                                                                        rspamd_controller_learn_fin_task,
                                                                        NULL,
@@ -2260,6 +2262,8 @@ rspamd_controller_handle_learnclass(
                                                   session->ctx->lang_det, ctx->event_loop, FALSE);
 
        task->resolver = ctx->resolver;
+       /* Manual learn: ensure errors are propagated (not auto-learn semantics) */
+       task->flags &= ~RSPAMD_TASK_FLAG_LEARN_AUTO;
        task->s = rspamd_session_create(session->pool,
                                                                        rspamd_controller_learn_fin_task,
                                                                        NULL,
index 8be8ce5d65e20b39e0f3141ceebb8b88ba136e77..ffd0fa11af4a1479b260a2f216e3448f9851b7f1 100644 (file)
@@ -1283,7 +1283,7 @@ rspamd_stat_learn_class(struct rspamd_task *task,
                rspamd_stat_preprocess(st_ctx, task, TRUE, spam);
 
                if (!rspamd_stat_cache_check(st_ctx, task, classifier, spam, err)) {
-                       msg_debug_bayes("cache check failed, skip learning");
+                       msg_debug_bayes("pre-learn checks failed, skip learning");
                        return RSPAMD_STAT_PROCESS_ERROR;
                }
        }
@@ -1369,7 +1369,7 @@ rspamd_stat_learn(struct rspamd_task *task,
                rspamd_stat_preprocess(st_ctx, task, TRUE, spam);
 
                if (!rspamd_stat_cache_check(st_ctx, task, classifier, spam, err)) {
-                       msg_debug_bayes("cache check failed, skip learning");
+                       msg_debug_bayes("pre-learn checks failed, skip learning");
                        return RSPAMD_STAT_PROCESS_ERROR;
                }
        }