we are having 100+ rules like these in the central_filter

if $message_body: contains "blah blah"
         logfile /var/log/refuse.log
         logwrite "A1A32 $tod_log $original_domain $message_id $sender_address"            fail text "Mail has not been delivered as it is marked as spam. Check content and resend"
         seen finish
endif

if $message_body: contains "another blah blah check"
         logfile /var/log/refuse.log
         logwrite "A1A33 $tod_log $original_domain $message_id $sender_address"            fail text "Mail has not been delivered as it is marked as spam. Check content and resend"
         seen finish
endif

in the central_filter, removing those delivers the message correctly, appears that there is an array that is not emptied after each message_body compare and therefore goobles up memory and fails when reaching 2gb?


On 23/05/2022 16:42, Jeremy Harris via Exim-users wrote:
On 23/05/2022 16:04, Laura Williamson via Exim-users wrote:
Have another one (in queue, undelivered) that I can test with.

# exim -d+all -M <message-id> 2>&1 | tee my_debug_log_file

should get us debug for an attempt to deliver a message
that is queued.  With luck that will help locate where
it's doing this odd memory-allocation.  The important bit
will be that leading up to the log line being generated
(I assuming this is the same problem, and not another one!)

There will be quite a lot of debug output, hence the above
commandline to copy it also to a file.

It's reasonably likely that the "internal problem in central_filter router" line results from a subprocess dying, and that the "bad memory allocation"
line is in that subprocess (when that is logged, the process doing
so dies voluntarily).

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to