[Top] [All Lists]

Re: AD Evaluation Comments: draft-ietf-sieve-vacation-04

2005-10-21 01:53:56

On Thu, Oct 20, 2005 at 04:58:12PM -0700, Aaron Stone wrote:
On Fri, 2005-10-21 at 01:22 +0200, Michael Haardt wrote:
I expect that

redirect "a(_at_)nosuchdomain";
redirect "user(_at_)example(_dot_)com";

may well send a message to "user(_at_)example(_dot_)com", despite the first
causing a run-time error, because the action sets up the delivery of
the message, but does not deliver it on its own.  But strictly
speaking, this _is_ action reordering.  We need to say something about
this topic.

I don't believe this is action reordering. What you're presupposing is
that the message is redirected in an asynchronous manner (as is
reasonable in any modern mail system), but then you're broadly
redefining the out-of-order _results_ as action reordering.

As I said, with mails, this behaviour is expected.  In common programming
languages, statements are executed strictly sequential, including all
side effects and exceptions from that rule are specified in great detail.

Your suggestion to look at results (external side effects) may be the
solution.  I suggest:

  With regard to side effects on the state of the Sieve machine, all
  commands are processed strictly sequential, but side effects outside the
  Sieve machine, such as filed or redirected mails, MAY happen out of order.
  Run time errors on external side effects MAY not have any influence on
  the Sieve machine.

Now all we need may be putting that into words that can be understood. ;-)

The MAY tries to say that this is yet another place where the same script
may yield different results on different systems.  Improvements are more
than welcome.

Since the second vacation command has the side effect of generating an
error inside the Sieve machine (internal side effect), execution must
stop exactly there.  A fileinto afterwards will never be executed, if
we agree on the above behaviour.