The 10x row-limit overflow guard called lua_util.newdeque(), which does
not exist, leaving buffer['logs'] as nil and causing subsequent operations
to fail. Reset the buffer using the local Queue class, matching how it is
initialized.
if nlogs >= settings['limits']['max_rows'] * 10 then
rspamd_logger.errx(task, 'row count limit exceeded 10x: %s rows (limit %s), discarding data',
nlogs, settings['limits']['max_rows'])
- buffer['logs'] = lua_util.newdeque()
+ buffer['logs'] = Queue:new()
collectgarbage()
return
end