[exim-dev] [Bug 2318] New: noerror command in filter file is…

Top Page
Delete this message
Reply to this message
Author: admin
Date:  
To: exim-dev
Subject: [exim-dev] [Bug 2318] New: noerror command in filter file is not working
https://bugs.exim.org/show_bug.cgi?id=2318

            Bug ID: 2318
           Summary: noerror command in filter file is not working
           Product: Exim
           Version: 4.91
          Hardware: All
                OS: All
            Status: NEW
          Severity: bug
          Priority: medium
         Component: Filters
          Assignee: nigel@???
          Reporter: m.kurz@???
                CC: exim-dev@???


Created attachment 1114
--> https://bugs.exim.org/attachment.cgi?id=1114&action=edit
Test for the noerror command in a filter file

See the attached test 0616:
---
1. A message gets send to userx.
2. The router that handles userx processes a filter file.
3. That filter file (also) delivers the message to usery.
3.1. "unseen" makes the delivery not significant (userx also continues
processing).
3.2. "noerror" is set.
4. Now both addresses get processed by the (same) smtp transport.
4.1. userx gets accepted.
4.2. usery however gets rejected (550)

What happens now is a bug I think:
For usery a bounce gets send (see 10HmaY-0005vi-00 in the log) even though
"noerror" was set.

Let's see what the docs say about the noerror command
(https://www.exim.org/exim-html-current/doc/html/spec_html/filter_ch-exim_filter_files.html#SEC43):
---
> ... If any of the generated addresses subsequently suffers a delivery failure, an error message is generated in the normal way. However, if a filter command that sets up a delivery is preceded by the word “noerror”, errors for that delivery, (...) are ignored.


The "error ignored" log entry is also relevant here
(https://www.exim.org/exim-html-current/doc/html/spec_html/ch-log_files.html#SECID259):
---
> There are several circumstances that give rise to this message:
> ...
> 2. A filter file set up a delivery using the “noerror” option, and the delivery failed. The delivery was discarded.


Therefore instead of the bounce message I would expect "error ignored" to be
logged.
So is that a bug or do I misunderstand how to use the noerror commmand and/or
how it works exactly?

Because I debugged it, I am also sure following statement in filter.c gets
processed - which supports my thought even more that this is a bug
(https://git.exim.org/exim.git/blob/8768d5483a5894400ae1f70cda1beb44ed9b087c:/src/src/filter.c#l1818):
---
if (commands->noerror) addr->prop.ignore_error = TRUE;

Possible solutions:
---
1. If that is a bug it should get fixed ;) and the log in my test needs to be
updated of course to reflect the correct behavour.
2. If that is not a bug, can someone please update my test or provide a new one
which sets up a test case for the noerror command so that "error ignored" gets
logged? I just wasn't able to do so. Also there is not a single test for the
noerror command yet.

--
You are receiving this mail because:
You are on the CC list for the bug.