Bug#658878: exim4: does not use other smarthost when one fails to resolve

Andreas Metzler ametzler at downhill.at.eu.org
Mon Feb 6 19:20:58 UTC 2012


On 2012-02-06 Tim Bagot <timb at bluearc.com> wrote:
> Package: exim4
> Version: 4.72-6+squeeze2
> Severity: normal

> We have Exim configured with 2 smarthosts, for redundancy:

> dc_eximconfig_configtype='smarthost'
> [...]
> dc_smarthost='mailhost.uk.bluearc.com:mailhost.us.bluearc.com'
> [...]

> This morning, unfortunately, the second name in that list stopped
> resolving. (It is CNAMEd to something that currently returns NXDOMAIN.)
> The failure was noted in mainlog like this:

> 2012-02-06 09:41:38 1RuL4s-0001wA-0A == timb at bluearc.com R=smarthost defer (-36): host lookup for mailhost.us.bluearc.com did not complete (DNS timeout?)

> Surprisingly, Exim seems not to have tried using the other, still working,
> smarthost at all (the first listed).

FWIW neither resolve now. ;-)

> No messages were delivered until I
> removed the faulty smarthost from the configuration and flushed the queue.
> It is clearly undesirable that failure of a backup smarthost should
> prevent Exim delivering via a preferred smarthost that has not failed.
[...]

Quoting exim's documentation for the manualroute router:

-------------------
host_find_failed        Use: manualroute        Type: string    Default: freeze

This option controls what happens when manualroute tries to find an IP
address for a host, and the host does not exist. The option can be set
to one of the following values:
[...]
The default (“freeze”) assumes that this state is a serious
configuration error. 
-------------------

Debian is setting host_find_failed = defer, i.e. "lets try again
later", matching the historic behavior of exim3. - This makes exim
work better for intermediately connected hosts by queuing mail instead
of freezing it.

Afaiui by setting host_find_failed = ignore (and keeping
host_all_ignored  at its default value of defer) we could fix this
issue. - For systems with just a single smarthost listed the behavior
would be unchanged, for systems like yours with multiple alternatives
listed exim would ignore permanently unresolvable hosts and try the
othere ones.

cu andreas





More information about the Pkg-exim4-maintainers mailing list