sieve duplicate locking

Alexander 'Leo' Bergolth
Mon, 17 Oct 2016 16:05:17 -0000

Hi!

Does the duplicate sieve plugin do any locking to avoid duplicate
parallel delivery of the same message?

I sometimes experience duplicate mail delivery of messages with the same
message-id, despite the use of a sieve duplicate filter. According to
the log files, those messages are delivered in the same second by two
parallel dovecot-lda processes. (Duplicate filtering works fine in all
other cases.)

RFC7352 states that the ID of a message may only be committed to the
duplicate tracking list at the _end_ of a successful script execution,
which may lead to race conditions.
Maybe I am running into this?

Is there an easy way to serialize mail delivery using some locking
inside sieve?

Or do I have to serialize per-user dovecot-lda delivery? Any experiences
with that?

I am using dovecot-2.2.25 and pidgeonhole-0.4.15.
Mail is delivered using postfix-2.10 and dovecot-lda as mailbox_command.
Mailbox format is maildir with LAYOUT=fs.

Cheers,
--leo
--
e-mail   ::: Leo.Bergolth (at) wu.ac.at
fax      ::: +43-1-31336-906050
location ::: IT-Services | Vienna University of Economics | Austria