commit 118452c: [Minor] Dmarc_report: Try to escape from the coroutines curse

Vsevolod Stakhov vsevolod at highsecure.ru
Mon Aug 9 15:42:04 UTC 2021


Author: Vsevolod Stakhov
Date: 2021-08-09 16:38:07 +0100
URL: https://github.com/rspamd/rspamd/commit/118452c62ff48eed45fdf7b1732f85fc0775287a (HEAD -> master)

[Minor] Dmarc_report: Try to escape from the coroutines curse

---
 lualib/rspamadm/dmarc_report.lua | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/lualib/rspamadm/dmarc_report.lua b/lualib/rspamadm/dmarc_report.lua
index 062e8070e..acc941400 100644
--- a/lualib/rspamadm/dmarc_report.lua
+++ b/lualib/rspamadm/dmarc_report.lua
@@ -685,14 +685,19 @@ local function handler(args)
   local function finish_cb(nsuccess, nfail)
     if not opts.no_opt then
       lua_util.debugm(N, 'set last report date to %s', os.time())
+      -- Hack to avoid coroutines + async functions mess: we use async redis call here
+      redis_attrs.callback = function()
+        logger.messagex('Reporting collection has finished %s dates processed, %s reports: %s completed, %s failed',
+            ndates, nreports, nsuccess, nfail)
+      end
       lua_redis.request(redis_params, redis_attrs,
           {'SETEX', 'rspamd_dmarc_last_collection', dmarc_settings.reporting.keys_expire,
            tostring(os.time())})
+    else
+      logger.messagex('Reporting collection has finished %s dates processed, %s reports: %s completed, %s failed',
+          ndates, nreports, nsuccess, nfail)
     end
 
-    logger.messagex('Reporting collection has finished %s dates processed, %s reports: %s completed, %s failed',
-        ndates, nreports, nsuccess, nfail)
-
     pool:destroy()
   end
   send_reports_by_smtp(opts, all_reports, finish_cb)


More information about the Commits mailing list