[exim] Lists expands to mailboxes (and other lists) which in…

Top Page
Delete this message
Reply to this message
Author: Jaco Engelbrecht
Date:  
To: exim-users
Subject: [exim] Lists expands to mailboxes (and other lists) which in turn points back at one another
Hi,

I'm trying to figure out Exim's behaviour in the following (real-life) scenario.

A mail gets sent to: petagedequota@${some.arb.domain}

petagedequota@${some.arb.domain} is a list, and expands to:
-----------------------------------------------------------
at0621@${some.arb.domain}
ka0620@${some.arb.domain}
mj0620@${some.arb.domain}
nn0620@${some.arb.domain}
pc0620@${some.arb.domain}
rt0621@${some.arb.domain}
quota@${some.arb.domain}

at0621@${some.arb.domain} is a mailbox and forwards to:
-------------------------------------------------------
at0621@${some.arb.domain}
ka0620@${some.arb.domain}
mj0620@${some.arb.domain}
nn0620@${some.arb.domain}
pc0620@${some.arb.domain}
quota@${some.arb.domain}
rt0621@${some.arb.domain}

ka0620@${some.arb.domain} is a mailbox and forwards to:
-------------------------------------------------------
dc0620@${some.arb.domain}
ka0620@${some.arb.domain}
mj0620@${some.arb.domain}
nn0620@${some.arb.domain}
pc0620@${some.arb.domain}
quota@${some.arb.domain}
rt0621@${some.arb.domain}

mj0620@${some.arb.domain} is a mailbox and forwards to:
-------------------------------------------------------
ka0620@${some.arb.domain}
mj0620@${some.arb.domain}
nn0620@${some.arb.domain}
pc0620@${some.arb.domain}
quota@${some.arb.domain}
rt0621@${some.arb.domain}

nn0620@${some.arb.domain} is a mailbox and forwards to:
-------------------------------------------------------
nn0620@${some.arb.domain}
pc0620@${some.arb.domain}
quota@${some.arb.domain}

pc0620@${some.arb.domain} is a mailbox and forwards to:
-------------------------------------------------------
pc0620@${some.arb.domain}
quota@${some.arb.domain}

rt0621@${some.arb.domain} is a mailbox and forwards to:
-------------------------------------------------------
nn0620@${some.arb.domain}
pc0620@${some.arb.domain}
quota@${some.arb.domain}
rt0621@${some.arb.domain}

quota@${some.arb.domain} is a list and expands to:
-------------------------------------------------
at0621@${some.arb.domain}
bc0620@${some.arb.domain}
hs0621@${some.arb.domain}
ka0620@${some.arb.domain}
mj0620@${some.arb.domain}
nn0620@${some.arb.domain}
pc0620@${some.arb.domain}
petagedequota@${some.arb.domain}
quota@${some.arb.domain}
rt0621@${some.arb.domain}
tech@${some.arb.domain}

tech@${some.arb.domain} is a list and expands to:
-------------------------------------------------
ka0620@${some.arb.domain}

etc.

My understanding is that Exim first tries to figure out where it's going to route the mail to, and only then starts to deliver the mails once it has figured out all the final destinations of where to deliver the mail to. All of this happens in memory, yes?

With the above scenario, you'll see that a "list" forwards to a lot of mailboxes and to another "list", which all in turn point to each other etc. I should probably mention that in this particular scenario, the user also configured vacation auto-replies on all the mailboxes :-) ("list" is basically an alias..).

The nett effect was that a server with 4GB RAM and 2GB swap ran out of memory while trying to deliver this particular mail.

Now a few questions:

- Given the following:

mailbox10: mailbox10@${some.arb.domain}, mailbox20@${some.arb.domain}, list10@${some.arb.domain}
mailbox20: mailbox20@${some.arb.domain}, mailbox10@${some.arb.domain}, list10@${some.arb.domain}
list10: mailbox10@${some.arb.domain}, mailbox20@${some.arb.domain}, list10@${some.arb.domain}

A mail message get sent to mailbox10@${some.arb.domain}...

How far will Exim go in delivering the mails? I've set 'check_ancestor' in my routers where applicable.

- What's the best way of telling Exim to not use more than X amount of memory?
I don't see any configuration in Exim itself, so will it best to just setup resource limiting for Exim on OS level?
I know how to setup resource limiting in FreeBSD (in login.conf), any hints to set it up on Ubuntu?
There's some resistance to using daemontools, so .. :-\

- Without seeing my configuration file (which I unfortunately can't share at this point in time), do you think I'm just doing something stupid?
I mean, it's a very unusual scenario, but it happened and I'm now trying to find ways to prevent this from happening again.

If I can hear what the expected behaviour would be of the mail sent to mailbox10@, I'll probably know if I am, or not...

FWIW, I'm running Exim 4.60 on Ubuntu Dapper.

Mrmf, oh, and after figuring out who configured the above, I was told that all ${clown} wanted to do was to test the mailbox quotas.. :-)

Jaco

--
bje@???
the faculty of making fortunate discoveries