著者: Adam M. Costello 日付: To: Philip Hazel CC: Mark Baker, exim-users 題目: Re: [Exim] [amc@cs.berkeley.edu: Bug#102385: exim: infinite loop of "Message frozen" messages]
Oops, I'm sorry, I just realized that there was no simple way for exim
to detect the loop, because it involved another machine. Here's exactly
what was happening:
exim is running on machine1. A message to user1@machine1 gets
frozen, so a notification is sent to postmaster, which expands to
user2@machine2, which expands to multiple addresses, including
user1@machine1, so another message gets frozen, repeat ad infinitum.
For regular forwarding loops, MTAs usually detect loops by noticing that
the list of Received: fields gets too long. But that doesn't work in
this case because it's a brand new message being created each time.
Bounce messages usually cannot loop because the envelope sender of a
bounce message is <>, so a bounce message has nowhere to bounce back to.
But in this case it's not a bounce message, but a notification message.
Maybe there should be a rule that failure to deliver a message whose
envelope sender is <> should never generate a notification. Or maybe
MTAs should put a counter in the header of a notification, and if
failure to deliver a notification causes another notification, the
latter should have a counter value one greater, and the notification
should be suppressed if the counter gets too large.