]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Neural: More fixes
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 8 Jul 2019 08:12:37 +0000 (09:12 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 8 Jul 2019 08:12:37 +0000 (09:12 +0100)
src/plugins/lua/neural.lua

index b0f307803fb48ff83bcc0a8d9b619aa549eadce5..10c1eadd4d1cfb1a571c67a250c1d9e871336ece 100644 (file)
@@ -271,8 +271,8 @@ local function new_ann_profile(task, rule, set, version)
 
   local function add_cb(err, _)
     if err then
-      rspamd_logger.errx(task, 'cannot check if we can train %s:%s : %s',
-          rule.prefix, set.name, err)
+      rspamd_logger.errx(task, 'cannot store ANN profile for %s:%s at %s : %s',
+          rule.prefix, set.name, profile.redis_key, err)
     else
       rspamd_logger.infox(task, 'created new ANN profile for %s:%s, data stored at prefix %s',
           rule.prefix, set.name, profile.redis_key)
@@ -285,7 +285,7 @@ local function new_ann_profile(task, rule, set, version)
       true, -- is write
       add_cb, --callback
       'ZADD', -- command
-      {set.prefix, profile_serialized, tostring(rspamd_util.get_time())}
+      {set.prefix, tostring(rspamd_util.get_time()), new_ann_profile}
   )
 
   return profile
@@ -785,7 +785,7 @@ local function load_new_ann(rule, ev_base, set, profile, min_diff)
               true, -- is write
               rank_cb, --callback
               'ZADD', -- command
-              {set.prefix, profile_serialized, tostring(rspamd_util.get_time())}
+              {set.prefix, tostring(rspamd_util.get_time()), new_ann_profile}
           )
           rspamd_logger.infox(rspamd_config, 'loaded ANN for %s from %s; %s bytes compressed; version=%s',
               rule.prefix .. ':' .. set.name, ann_key, #ann_data, profile.version)
@@ -1009,10 +1009,10 @@ local function ann_push_vector(task)
   if not settings.allow_local and lua_util.is_rspamc_or_controller(task) then return end
   local verdict,score = lua_util.get_task_verdict(task)
   for _,rule in pairs(settings.rules) do
-    local sid = task:get_settings_id() or -1
+    local set = get_rule_settings(task, rule)
 
-    if rule.settings[sid] then
-      ann_push_task_result(rule, task, verdict, score, rule.settings[sid])
+    if set then
+      ann_push_task_result(rule, task, verdict, score, set)
     end
 
   end
@@ -1085,12 +1085,15 @@ local function process_rules_settings()
 
       process_settings_elt(rule, nelt)
       for id,ex in pairs(rule.settings) do
-        if lua_util.distance_sorted(ex.symbols, nelt.symbols) == 0 then
-          -- Equal symbols, add reference
-          lua_util.debugm(N, rspamd_config, 'added reference from settings id %s to %s; same symbols',
-              nelt.name, ex.name)
-          rule.settings[s] = id
-          nelt = nil
+        if type(ex) == 'table' then
+          if lua_util.distance_sorted(ex.symbols, nelt.symbols) == 0 then
+            -- Equal symbols, add reference
+            lua_util.debugm(N, rspamd_config,
+                'added reference from settings id %s to %s; same symbols',
+                nelt.name, ex.name)
+            rule.settings[s] = id
+            nelt = nil
+          end
         end
       end