Re: [exim-dev] Re: [exim] Bug in duplicate detection?

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: Steven A. Reisman
CC: exim-dev
Subject: Re: [exim-dev] Re: [exim] Bug in duplicate detection?
On Tue, 8 Mar 2005, Steven A. Reisman wrote:

> A compiler constructs a Directed Acyclic Graph merging subtrees when
> it sees common subexpressions:
>
>              = 
>             / \
>            a   +
>               / \
>              |   |
>               \ /
>                *
>               / \
>              b   c


>
> Would a similar data structure and algorithm be applicable here?


Nice idea, but it won't work here because, as I've very belatedly
realized, the two intermediate addresses are NOT the same thing. Two
identical top-level addresses can immediately be considered to be
duplicates, but intermediate ones can't. They may have different next
routers, or different $address_data, or indeed, the routers may even
look at $original_local_part or $original_domain.

> More importantly, is email routing according to the current "rules"
> non-deterministic?


It's deterministic in the sense that if you give it the same address
list, it will always do the same thing. However, one can construct
configurations such that two addresses "a b" will be routed differently
if given in the other order "b a".

Thinking about this overnight, I've had some ideas which I will explore
in due course. It MAY not be as hard to fix as I first thought. But not
for a few days - there are other things that need doing.

-- 
Philip Hazel            University of Cambridge Computing Service,
ph10@???      Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book:    http://www.uit.co.uk/exim-book