On Wed, May 06, 2009 at 12:02:35PM +0200, Ulrich Zehl wrote:
> In my setup, I have a hash table that's used in relay_domains, like so:
>
> relay_domains =
> hash:/etc/postfix-incoming/maps/domains,
> hash:/etc/postfix-incoming/maps/auto/domains
>
> Currently, this table is completely rebuilt from a database every five
> minutes or so, even if there are no changes. (This makes the programm that
> builds it simpler.)
>
> This causes qmgr to restart itself whenever it notices that the table has
> changed:
>
> May 6 11:49:42 allina postfix-incoming/qmgr[19084]: table
> hash:/etc/postfix-incoming/maps/auto/domains(0,lock|fold_fix has changed --
> restarting
This is a side-effect of the default backwards-compatible setting:
fast_flush_domains = $relay_domains
When mail is deferred, the queue manager informs the flush service if
the domain matches this list. As a result the queue manager opens any
associated tables. If you don't support ETRN, you will be much happier
after you set "fast_flush_domains" empty.
There is a comment in in src/global/defer.c:defer_append():
/*
* Notify the fast flush service. XXX Should not this belong in the
* bounce/defer daemon? Well, doing it here is more robust.
*/
if ((rcpt_domain = strrchr(rcpt->address, '@')) != 0
&& *++rcpt_domain != 0)
switch (flush_add(rcpt_domain, id)) {
case FLUSH_STAT_OK:
case FLUSH_STAT_DENY:
break;
default:
msg_warn("%s: %s service failure", id, var_flush_service);
break;
}
Perhaps if the code did get moved into the bounce service, we could
eliminate this *last* table dependency from the queue manager. I've not
looked into what the implications of such a change would be, Wietse is
away this week, but hopefully he'll still read this and respond when
he returns.
--
Viktor.
Disclaimer: off-list followups get on-list replies or get ignored.
Please do not ignore the "Reply-To" header.
To unsubscribe from the postfix-users list, visit
http://www.postfix.org/lists.html or click the link below:
<mailto:[email protected]?body=unsubscribe%20postfix-users>
If my response solves your problem, the best way to thank me is to not
send an "it worked, thanks" follow-up. If you must respond, please put
"It worked, thanks" in the "Subject" so I can delete these quickly.