From ae4fc8ee04658d0a0dc60f4e36d117e8d995c5bb Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Thu, 5 Feb 2026 09:47:44 +0000 Subject: [PATCH] [Fix] re_cache: Use debug level for missing Lua backend during config During config initialization (configtest, startup), there's no event loop available so the Lua backend cannot be initialized. This is expected behavior - use debug level when try_load=true to avoid noisy warnings during configtest. --- src/libserver/re_cache.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/libserver/re_cache.c b/src/libserver/re_cache.c index 16cd713c05..39606eb018 100644 --- a/src/libserver/re_cache.c +++ b/src/libserver/re_cache.c @@ -3196,10 +3196,23 @@ rspamd_re_cache_load_hyperscan(struct rspamd_re_cache *cache, /* Lua backend is required for sync loading */ if (!rspamd_hs_cache_has_lua_backend()) { - msg_warn_re_cache("no Lua backend available for synchronous hyperscan loading%s%s%s", - cache->scope ? " for scope '" : "", - cache->scope ? cache->scope : "", - cache->scope ? "'" : ""); + /* + * During config init (try_load=true), no event loop is available, + * so Lua backend can't be initialized. This is expected - use debug level. + * Workers will initialize the backend and load databases properly. + */ + if (try_load) { + msg_debug_re_cache("no Lua backend available for synchronous hyperscan loading%s%s%s", + cache->scope ? " for scope '" : "", + cache->scope ? cache->scope : "", + cache->scope ? "'" : ""); + } + else { + msg_warn_re_cache("no Lua backend available for synchronous hyperscan loading%s%s%s", + cache->scope ? " for scope '" : "", + cache->scope ? cache->scope : "", + cache->scope ? "'" : ""); + } cache->hyperscan_loaded = RSPAMD_HYPERSCAN_LOAD_ERROR; return cache->hyperscan_loaded; } -- 2.47.3