aboutsummaryrefslogtreecommitdiffstats
path: root/lualib/lua_redis.lua
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rspamd.com>2024-12-15 09:43:04 +0000
committerVsevolod Stakhov <vsevolod@rspamd.com>2024-12-15 09:43:04 +0000
commit16957bfccc4ce6b131bff2cb73ce433611233f9c (patch)
tree775fb2965ccecd3a42082899599b91fa2debc231 /lualib/lua_redis.lua
parent70773eef7084d51619c0ccc497f701ba4d8f0665 (diff)
downloadrspamd-16957bfccc4ce6b131bff2cb73ce433611233f9c.tar.gz
rspamd-16957bfccc4ce6b131bff2cb73ce433611233f9c.zip
[Minor] Slightly improve logging
Diffstat (limited to 'lualib/lua_redis.lua')
-rw-r--r--lualib/lua_redis.lua45
1 files changed, 25 insertions, 20 deletions
diff --git a/lualib/lua_redis.lua b/lualib/lua_redis.lua
index 003fee957..2a917b56c 100644
--- a/lualib/lua_redis.lua
+++ b/lualib/lua_redis.lua
@@ -1463,20 +1463,25 @@ local function exec_redis_script(id, params, callback, keys, args)
if not err then
callback(err, data)
elseif string.match(err, 'NOSCRIPT') then
- -- Schedule restart
- logger.infox(params.task or rspamd_config,
- 'redis script %s is not loaded (NOSCRIPT returned), scheduling reload',
- script_description(script))
- script.sha = nil
+ -- Schedule restart if possible
if can_reload then
table.insert(script.waitq, do_call)
if not script.servers_ready then
+ logger.infox(params.task or rspamd_config,
+ 'redis script %s is not loaded (NOSCRIPT returned), scheduling reload',
+ script_description(script))
+ script.sha = nil
+ script.loaded = nil
-- Reload scripts if this has not been initiated yet
if params.task then
load_script_task(script, params.task)
else
load_script_taskless(script, rspamd_config, params.ev_base)
end
+ else
+ logger.infox(params.task or rspamd_config,
+ 'redis script %s is not ready (NOSCRIPT returned), waiting it to be loaded',
+ script_description(script))
end
else
callback(err, data)
@@ -1514,24 +1519,24 @@ local function exec_redis_script(id, params, callback, keys, args)
end
end
- if script.loaded then
+ if script.loaded and script.sha then
do_call(true)
else
- -- Delayed until scripts are loaded
- logger.infox(params.task or rspamd_config, 'redis script %s is not loaded, trying to load',
- script_description(script))
- if not params.task then
- table.insert(script.waitq, do_call)
+ table.insert(script.waitq, do_call)
+ if not script.servers_ready then
+ -- Delayed until scripts are loaded
+ logger.infox(params.task or rspamd_config, 'redis script %s is not loaded, trying to load',
+ script_description(script))
+ -- Reload scripts if this has not been initiated yet
+ if params.task then
+ load_script_task(script, params.task)
+ else
+ load_script_taskless(script, rspamd_config, params.ev_base)
+ end
else
- -- TODO: fix taskfull requests
- table.insert(script.waitq, function()
- if script.loaded then
- do_call(false)
- else
- callback('NOSCRIPT', nil)
- end
- end)
- load_script_task(script, params.task, params.is_write)
+ -- Already loaded, but not yet ready
+ logger.infox(params.task or rspamd_config, 'redis script %s is not ready, waiting it to be loaded',
+ script_description(script))
end
end