]> source.dussan.org Git - rspamd.git/commitdiff
[Fix] ClickHouse cleanup of old partitions 4074/head
authorAnton Yuzhaninov <citrin+git@citrin.ru>
Thu, 10 Feb 2022 10:05:08 +0000 (10:05 +0000)
committerAnton Yuzhaninov <citrin+git@citrin.ru>
Thu, 10 Feb 2022 10:05:08 +0000 (10:05 +0000)
If /var/lib/rspamd/clickhouse_retention_run is missing or has no
number cleanup was not performed because of a following Lua error:

lua_periodic_callback_error: call to periodic script (registered at clickhouse.lua:1531) failed: /usr/share/rspamd/plugins/clickhouse.lua:991: attempt to compare number with nil; trace: [1]:{/usr/share/rspamd/plugins/clickhouse.lua:1069 - <unknown> [Lua]};

src/plugins/lua/clickhouse.lua

index 7a2e276eebf0ca5ca4405ae139db80d1abaf04d0..00a0fc7385475f42f3a407d8c11193ec3661a0ee 100644 (file)
@@ -988,6 +988,10 @@ local function get_last_removal_ago()
     f:close()
   end
 
+  if last_ts == nil or (last_ts + settings.retention.period) <= current_ts then
+    return write_ts_to_file() and 0
+  end
+
   if last_ts > current_ts then
     -- Clock skew detected, overwrite last_ts with current_ts and wait for the next
     -- retention period
@@ -996,10 +1000,6 @@ local function get_last_removal_ago()
     return write_ts_to_file() and -1
   end
 
-  if last_ts == nil or (last_ts + settings.retention.period) <= current_ts then
-    return write_ts_to_file() and 0
-  end
-
   return (last_ts + settings.retention.period) - current_ts
 end