From: Andrew Lewis Date: Thu, 15 Jan 2026 12:13:22 +0000 (+0200) Subject: [Minor] Return errors from lua_redis.load_redis_script_from_file X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bccedaeb7e6424353573a764d4de7796d1f3d504;p=thirdparty%2Frspamd.git [Minor] Return errors from lua_redis.load_redis_script_from_file --- diff --git a/lualib/lua_bayes_redis.lua b/lualib/lua_bayes_redis.lua index a7af80bf14..0a0b5d0771 100644 --- a/lualib/lua_bayes_redis.lua +++ b/lualib/lua_bayes_redis.lua @@ -143,9 +143,23 @@ exports.lua_bayes_init_statfile = function(classifier_ucl, statfile_ucl, symbol, return nil end - local classify_script_id = lua_redis.load_redis_script_from_file("bayes_classify.lua", redis_params) - local learn_script_id = lua_redis.load_redis_script_from_file("bayes_learn.lua", redis_params) - local stat_script_id = lua_redis.load_redis_script_from_file("bayes_stat.lua", redis_params) + local classify_script_id, err = lua_redis.load_redis_script_from_file("bayes_classify.lua", redis_params) + if not classify_script_id then + logger.errx(ev_base, err) + return nil + end + local learn_script_id + learn_script_id, err = lua_redis.load_redis_script_from_file("bayes_learn.lua", redis_params) + if not learn_script_id then + logger.errx(ev_base, err) + return nil + end + local stat_script_id + stat_script_id, err = lua_redis.load_redis_script_from_file("bayes_stat.lua", redis_params) + if not stat_script_id then + logger.errx(ev_base, err) + return nil + end local max_users = classifier_ucl.max_users or 1000 local current_data = { @@ -268,8 +282,17 @@ exports.lua_bayes_init_cache = function(classifier_ucl, statfile_ucl) end end - local check_script_id = lua_redis.load_redis_script_from_file("bayes_cache_check.lua", redis_params) - local learn_script_id = lua_redis.load_redis_script_from_file("bayes_cache_learn.lua", redis_params) + local check_script_id, err = lua_redis.load_redis_script_from_file("bayes_cache_check.lua", redis_params) + if not check_script_id then + logger.errx(rspamd_config, err) + return nil + end + local learn_script_id + learn_script_id, err = lua_redis.load_redis_script_from_file("bayes_cache_learn.lua", redis_params) + if not learn_script_id then + logger.errx(rspamd_config, err) + return nil + end return gen_cache_check_functor(redis_params, check_script_id, conf), gen_cache_learn_functor(redis_params, learn_script_id, conf) diff --git a/lualib/lua_redis.lua b/lualib/lua_redis.lua index b262777baf..a844c19e10 100644 --- a/lualib/lua_redis.lua +++ b/lualib/lua_redis.lua @@ -1649,7 +1649,6 @@ exports.add_redis_script = add_redis_script -- local function load_redis_script_from_file(filename, redis_params, dir) local lua_util = require "lua_util" - local rspamd_logger = require "rspamd_logger" if not dir then dir = rspamd_paths.LUALIBDIR @@ -1662,13 +1661,12 @@ local function load_redis_script_from_file(filename, redis_params, dir) -- Read file contents local file = io.open(path, "r") if not file then - rspamd_logger.errx("failed to open Redis script file: %s", path) - return nil + return nil, string.format("failed to open Redis script file: %s", path) end local script = file:read("*all") if not script then - rspamd_logger.errx("failed to load Redis script file: %s", path) - return nil + file:close() + return nil, string.format("failed to read Redis script file: %s", path) end file:close() script = lua_util.strip_lua_comments(script) diff --git a/lualib/plugins/neural.lua b/lualib/plugins/neural.lua index 5b4ffc0339..5f71db5fc2 100644 --- a/lualib/plugins/neural.lua +++ b/lualib/plugins/neural.lua @@ -162,14 +162,27 @@ register_provider('metatokens', { }) local function load_scripts() - redis_script_id.vectors_len = lua_redis.load_redis_script_from_file(redis_lua_script_vectors_len, + local err + redis_script_id.vectors_len, err = lua_redis.load_redis_script_from_file(redis_lua_script_vectors_len, redis_params) - redis_script_id.maybe_invalidate = lua_redis.load_redis_script_from_file(redis_lua_script_maybe_invalidate, + if err then + rspamd_logger.errx(rspamd_config, err) + end + redis_script_id.maybe_invalidate, err = lua_redis.load_redis_script_from_file(redis_lua_script_maybe_invalidate, redis_params) - redis_script_id.maybe_lock = lua_redis.load_redis_script_from_file(redis_lua_script_maybe_lock, + if err then + rspamd_logger.errx(rspamd_config, err) + end + redis_script_id.maybe_lock, err = lua_redis.load_redis_script_from_file(redis_lua_script_maybe_lock, redis_params) - redis_script_id.save_unlock = lua_redis.load_redis_script_from_file(redis_lua_script_save_unlock, + if err then + rspamd_logger.errx(rspamd_config, err) + end + redis_script_id.save_unlock, err = lua_redis.load_redis_script_from_file(redis_lua_script_save_unlock, redis_params) + if err then + rspamd_logger.errx(rspamd_config, err) + end end local function create_ann(n, nlayers, rule) diff --git a/src/plugins/lua/ratelimit.lua b/src/plugins/lua/ratelimit.lua index f2a2978afe..5de71c213d 100644 --- a/src/plugins/lua/ratelimit.lua +++ b/src/plugins/lua/ratelimit.lua @@ -72,9 +72,19 @@ local message_func = function(_, limit_type, _, _, _) end local function load_scripts(_, _) - bucket_check_id = lua_redis.load_redis_script_from_file(bucket_check_script, redis_params) - bucket_update_id = lua_redis.load_redis_script_from_file(bucket_update_script, redis_params) - bucket_cleanup_id = lua_redis.load_redis_script_from_file(bucket_cleanup_script, redis_params) + local err + bucket_check_id, err = lua_redis.load_redis_script_from_file(bucket_check_script, redis_params) + if err then + rspamd_logger.errx(rspamd_config, err) + end + bucket_update_id, err = lua_redis.load_redis_script_from_file(bucket_update_script, redis_params) + if err then + rspamd_logger.errx(rspamd_config, err) + end + bucket_cleanup_id, err = lua_redis.load_redis_script_from_file(bucket_cleanup_script, redis_params) + if err then + rspamd_logger.errx(rspamd_config, err) + end end --- Check whether this addr is bounce