From 3a8bb197fb08ef3832e45f7ee270cc66bc6ea224 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Mon, 20 Jun 2022 20:46:27 +0100 Subject: [PATCH] [Minor] Add some sanity checks to the redis scripts --- lualib/plugins/neural.lua | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lualib/plugins/neural.lua b/lualib/plugins/neural.lua index d2db2f519..67051fa1a 100644 --- a/lualib/plugins/neural.lua +++ b/lualib/plugins/neural.lua @@ -127,12 +127,16 @@ local redis_lua_script_maybe_invalidate = [[ local lim = tonumber(KEYS[2]) if card > lim then local to_delete = redis.call('ZRANGE', KEYS[1], 0, card - lim - 1) - for _,k in ipairs(to_delete) do - local tb = cjson.decode(k) - redis.call('DEL', tb.redis_key) - -- Also train vectors - redis.call('DEL', tb.redis_key .. '_spam') - redis.call('DEL', tb.redis_key .. '_ham') + if to_delete then + for _,k in ipairs(to_delete) do + local tb = cjson.decode(k) + if type(tb) == 'table' and type(tb.redis_key) == 'string' then + redis.call('DEL', tb.redis_key) + -- Also train vectors + redis.call('DEL', tb.redis_key .. '_spam') + redis.call('DEL', tb.redis_key .. '_ham') + end + end end redis.call('ZREMRANGEBYRANK', KEYS[1], 0, card - lim - 1) return to_delete -- 2.39.5