]> source.dussan.org Git - rspamd.git/commitdiff
[Fix] Remove bad FANN file to save computational resources
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 25 Apr 2016 11:25:44 +0000 (12:25 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 25 Apr 2016 11:25:44 +0000 (12:25 +0100)
src/plugins/lua/fann_scores.lua

index 5085c90a604a4919644edc225e8bc99b671eeb89..b20338fb801671c761354f348578e7e3dd6836c0 100644 (file)
@@ -69,12 +69,25 @@ local function load_fann()
 
     if n ~= fann:get_inputs() then
       rspamd_logger.infox(rspamd_config, 'fann has incorrect number of inputs: %s, %s symbols' ..
-      ' is found in the cache', fann:get_inputs(), n)
+      ' is found in the cache; removing', fann:get_inputs(), n)
       fann = nil
+
+      local ret,err = rspamd_util.unlink(fann_file)
+      if not ret then
+        rspamd_logger.errx(rspamd_config, 'cannot remove invalid fann from %s: %s',
+          fann_file, err)
+      end
     else
       rspamd_logger.infox(rspamd_config, 'loaded fann from %s', fann_file)
       return true
     end
+  else
+    rspamd_logger.infox(rspamd_config, 'fann is invalid: "%s"; removing', fann_file)
+    local ret,err = rspamd_util.unlink(fann_file)
+    if not ret then
+      rspamd_logger.errx(rspamd_config, 'cannot remove invalid fann from %s: %s',
+        fann_file, err)
+    end
   end
 
   return false