Browse Source

[Minor] Improve debugging for lua squeeze

pull/2612/head
Vsevolod Stakhov 7 years ago
parent
commit
a821e3c6d9
  1. 43
      lualib/lua_squeeze_rules.lua

43
lualib/lua_squeeze_rules.lua

@ -16,6 +16,7 @@ limitations under the License.
local exports = {}
local logger = require 'rspamd_logger'
local lua_util = require 'lua_util'
-- Squeezed rules part
local squeezed_rules = {{}} -- plain vector of all rules squeezed
@ -37,7 +38,7 @@ local function gen_lua_squeeze_function(order)
end
-- Too expensive to call :(
--logger.debugm(SN, task, 'call for: %s', data[2])
lua_util.debugm(SN, task, 'call for: %s', data[2])
local status, ret = pcall(real_call)
if not status then
@ -90,7 +91,7 @@ local function gen_lua_squeeze_function(order)
end
end
else
logger.debugm(SN, task, 'skip symbol due to settings: %s', data[2])
lua_util.debugm(SN, task, 'skip symbol due to settings: %s', data[2])
end
@ -106,14 +107,14 @@ exports.squeeze_rule = function(s, func)
order = 0,
sym = s,
}
logger.debugm(SN, rspamd_config, 'squeezed rule: %s', s)
lua_util.debugm(SN, rspamd_config, 'squeezed rule: %s', s)
else
logger.warnx(rspamd_config, 'duplicate symbol registered: %s, skip', s)
end
else
-- Unconditionally add function to the squeezed rules
local id = tostring(#squeezed_rules)
logger.debugm(SN, rspamd_config, 'squeezed unnamed rule: %s', id)
lua_util.debugm(SN, rspamd_config, 'squeezed unnamed rule: %s', id)
table.insert(squeezed_rules[1], {func, 'unnamed: ' .. id})
end
@ -132,7 +133,7 @@ exports.squeeze_rule = function(s, func)
end
exports.squeeze_dependency = function(child, parent)
logger.debugm(SN, rspamd_config, 'squeeze dep %s->%s', child, parent)
lua_util.debugm(SN, rspamd_config, 'squeeze dep %s->%s', child, parent)
if not squeezed_deps[parent] then
squeezed_deps[parent] = {}
@ -176,7 +177,7 @@ local function register_topology_symbol(order)
}
local parent = get_ordered_symbol_name(order - 1)
logger.debugm(SN, rspamd_config, 'registered new order of deps: %s->%s',
lua_util.debugm(SN, rspamd_config, 'registered new order of deps: %s->%s',
ord_sym, parent)
rspamd_config:register_dependency(ord_sym, parent, true)
end
@ -188,7 +189,7 @@ exports.squeeze_init = function()
if order > node.order then
node.order = order
logger.debugm(SN, rspamd_config, "symbol: %s, order: %s", node.sym, order)
lua_util.debugm(SN, rspamd_config, "symbol: %s, order: %s", node.sym, order)
else
return
end
@ -215,12 +216,12 @@ exports.squeeze_init = function()
if squeezed_symbols[s] then
-- External dep depends on a squeezed symbol
logger.debugm(SN, rspamd_config, 'register external squeezed dependency on %s',
lua_util.debugm(SN, rspamd_config, 'register external squeezed dependency on %s',
parent)
rspamd_config:register_dependency(squeeze_sym, parent, true)
else
-- Generic rspamd symbols dependency
logger.debugm(SN, rspamd_config, 'register external dependency %s -> %s',
lua_util.debugm(SN, rspamd_config, 'register external dependency %s -> %s',
s, parent)
rspamd_config:register_dependency(s, parent, true)
end
@ -232,7 +233,7 @@ exports.squeeze_init = function()
for cld,_ in pairs(children) do
if squeezed_symbols[cld] then
-- Cross dependency
logger.debugm(SN, rspamd_config, 'cross dependency in squeezed symbols %s->%s',
lua_util.debugm(SN, rspamd_config, 'cross dependency in squeezed symbols %s->%s',
cld, parent)
local order = squeezed_symbols[cld].order
if not squeeze_function_ids[order] then
@ -247,7 +248,7 @@ exports.squeeze_init = function()
-- External symbol depends on a squeezed one
local parent_symbol = get_ordered_symbol_name(ps.order)
rspamd_config:register_dependency(cld, parent_symbol, true)
logger.debugm(SN, rspamd_config, 'register squeezed dependency for external symbol %s->%s',
lua_util.debugm(SN, rspamd_config, 'register squeezed dependency for external symbol %s->%s',
cld, parent_symbol)
end
end
@ -258,7 +259,7 @@ exports.squeeze_init = function()
-- and create squeezed rules
for k,v in pairs(squeezed_symbols) do
local parent_symbol = get_ordered_symbol_name(v.order)
logger.debugm(SN, rspamd_config, 'added squeezed rule: %s (%s): %s',
lua_util.debugm(SN, rspamd_config, 'added squeezed rule: %s (%s): %s',
k, parent_symbol, v)
rspamd_config:register_symbol{
type = 'virtual',
@ -277,7 +278,7 @@ exports.squeeze_init = function()
if v.group then
if not squeezed_groups[v.group] then
logger.debugm(SN, rspamd_config, 'added squeezed group: %s', v.group)
lua_util.debugm(SN, rspamd_config, 'added squeezed group: %s', v.group)
squeezed_groups[v.group] = {}
end
@ -287,7 +288,7 @@ exports.squeeze_init = function()
if v.groups then
for _,gr in ipairs(v.groups) do
if not squeezed_groups[gr] then
logger.debugm(SN, rspamd_config, 'added squeezed group: %s', gr)
lua_util.debugm(SN, rspamd_config, 'added squeezed group: %s', gr)
squeezed_groups[gr] = {}
end
@ -295,7 +296,7 @@ exports.squeeze_init = function()
end
end
else
logger.debugm(SN, rspamd_config, 'no metric symbol found for %s, maybe bug', k)
lua_util.debugm(SN, rspamd_config, 'no metric symbol found for %s, maybe bug', k)
end
if not squeezed_rules[v.order] then
squeezed_rules[v.order] = {}
@ -324,7 +325,7 @@ exports.handle_settings = function(task, settings)
found = true
for _,s in ipairs(settings.symbols_enabled) do
if squeezed_symbols[s] then
logger.debugm(SN, task, 'enable symbol %s as it is in `symbols_enabled`', s)
lua_util.debugm(SN, task, 'enable symbol %s as it is in `symbols_enabled`', s)
symbols_enabled[s] = true
symbols_disabled[s] = nil
end
@ -337,7 +338,7 @@ exports.handle_settings = function(task, settings)
for _,gr in ipairs(settings.groups_enabled) do
if squeezed_groups[gr] then
for _,sym in ipairs(squeezed_groups[gr]) do
logger.debugm(SN, task, 'enable symbol %s as it is in `groups_enabled`', sym)
lua_util.debugm(SN, task, 'enable symbol %s as it is in `groups_enabled`', sym)
symbols_enabled[sym] = true
symbols_disabled[sym] = nil
end
@ -348,10 +349,10 @@ exports.handle_settings = function(task, settings)
if settings.symbols_disabled then
found = true
for _,s in ipairs(settings.symbols_disabled) do
logger.debugm(SN, task, 'try disable symbol %s as it is in `symbols_disabled`', s)
lua_util.debugm(SN, task, 'try disable symbol %s as it is in `symbols_disabled`', s)
if not symbols_enabled[s] then
symbols_disabled[s] = true
logger.debugm(SN, task, 'disable symbol %s as it is in `symbols_disabled`', s)
lua_util.debugm(SN, task, 'disable symbol %s as it is in `symbols_disabled`', s)
end
end
end
@ -359,11 +360,11 @@ exports.handle_settings = function(task, settings)
if settings.groups_disabled then
found = true
for _,gr in ipairs(settings.groups_disabled) do
logger.debugm(SN, task, 'try disable group %s as it is in `groups_disabled`: %s', gr)
lua_util.debugm(SN, task, 'try disable group %s as it is in `groups_disabled`: %s', gr)
if squeezed_groups[gr] then
for _,sym in ipairs(squeezed_groups[gr]) do
if not symbols_enabled[sym] then
logger.debugm(SN, task, 'disable symbol %s as it is in `groups_disabled`', sym)
lua_util.debugm(SN, task, 'disable symbol %s as it is in `groups_disabled`', sym)
symbols_disabled[sym] = true
end
end

Loading…
Cancel
Save