https://bugs.exim.org/show_bug.cgi?id=3148
--- Comment #4 from [email protected] --- It could be a 10+ year old bug in my config. I don't know when the retry hint issue occurred since I just noticed it. Normal processing handles it fine as you can see from the exim -bt I pasted in. This is strictly how retry hints are handled, where after every router it checks and if it finds an address who's children were delivered, it considers this one also delivered and ceases to process further routers. This is bad for multiple reasons. For example, the reason we are rerunning the address through routers instead of using one_time logic all the time is in case something changed. This means if things change but we cross through a router that had an address we delivered, but further routers would change it again, we'll discard it. The retry hint logic is defeating the purpose of not running one_time. Example using changes to aliases which is the reason one_time is not default: [email protected] [email protected] root is root@localdomain and aliased to [email protected] testuser2 is testuser2@localdomain testuser2 gets delivered, root gets deferred I change root to point to testuser2@localdomain, testuser2@localdomain to root@localdomain root@localdomain is still aliased to [email protected] Because of the address conflict and not fully processing the routers, [email protected] will be discarded. Notice in particular that this router has not set a transport yet. virtuser_table router generated testuser2@localdomain errors_to=NULL transport=NULL uid=unset gid=unset home=NULL routed by virtuser_table router envelope to: [email protected] transport: <none> locking /var/spool/exim/db/retry.lockfile locked /var/spool/exim/db/retry.lockfile EXIM_DBOPEN: file </var/spool/exim/db/retry> dir </var/spool/exim/db> flags=O_RDONLY returned from EXIM_DBOPEN: 0x55bce54d4010 opened hints database /var/spool/exim/db/retry: flags=O_RDONLY >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: testuser2@localdomain unique = testuser2@localdomain testuser2@localdomain was previously delivered: discarded [email protected]: children all complete EXIM_DBCLOSE(0x55bce54d4010) closed hints database and lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> and yet: # exim -bt [email protected] [email protected] <-- root@localdomain <-- testuser2@localdomain <-- [email protected] router = smarthost, transport = smarthost_smtp I tried to keep this simple with minimal changes. Any address in a series of routers is not necessarily a destination. If we've already sent to [email protected], fine, it's a duplicate, but before we reach transport, we can't guarantee delivery has been made. -- You are receiving this mail because: You are on the CC list for the bug. -- ## subscription configuration (requires account): ## https://lists.exim.org/mailman3/postorius/lists/exim-dev.lists.exim.org/ ## unsubscribe (doesn't require an account): ## [email protected] ## Exim details at http://www.exim.org/ ## Please use the Wiki with this list - http://wiki.exim.org/
