Duplicate mails with pop3 + dsync replication

Wolfgang Hennerbichler
Sun, 21 Jun 2015 19:05:25 -0000

FWIW I just tried the sdbox mailbox format for a singe user (not the whole
installation) by overriding the mail-userattr via ldap and the problem persists,
so I don?t think it?s an issue with maildir per se, but rather a pop3 /
replication issue or a misconfiguration on my side.

Wolfgang

> On 20 Jun 2015, at 22:29, Wolfgang Hennerbichler <wogri at wogri.com>
wrote:
>
> Hi,
>
> When I enable (and it only happens when it is actually running) replication
over TCP my users get duplicate mails via pop3.
> Here?s what happens:
>
> * User gets mail
> * Mail appears in (Maildir) new/ folder on both replicas
> * user retrieves mail (retr), calls dele. Mail still exists in new/ folder
on both replicas.
> * user runs retr (and gets the duplicate) and dele a second time, the mail
is actually removed.
> If I disable replication this behaviour goes away.
> I use dovecot from debian stable resources.
> Any help would _really_ be appreciated. I found one german thread that
dealt with the same problem, but no solution for it
(http://www.dovecot-buch.de/mailingliste/pop3-fehler-bei-delete-und-dsync-replikation/)
>
> wogri
>
> # dovecot --version
> 2.2.13
>
> # dovecot -n
> # 2.2.13: /etc/dovecot/dovecot.conf
> # OS: Linux 3.16.0-4-amd64 x86_64 Debian 8.0 ext4
> auth_verbose = yes
> doveadm_password = XXX
> first_valid_gid = 113
> first_valid_uid = 108
> last_valid_gid = 113
> last_valid_uid = 108
> mail_gid = dovecot
> mail_location = maildir:/var/mail/%n
> mail_plugins = quota fts fts_lucene virtual notify replication
> mail_temp_dir = /var/lib/dovecot/tmp
> mail_uid = dovecot
> namespace {
>  list = children
>  location = virtual:/var/mail/%n/virtual
>  prefix = virtual.
>  separator = .
> }
> namespace inbox {
>  inbox = yes
>  list = yes
>  location =
>  mailbox "Deleted Messages" {
>    auto = subscribe
>    special_use = \Trash
>  }
>  mailbox Drafts {
>    special_use = \Drafts
>  }
>  mailbox Junk {
>    special_use = \Junk
>  }
>  mailbox Sent {
>    special_use = \Sent
>  }
>  mailbox "Sent Messages" {
>    auto = no
>    special_use = \Sent
>  }
>  mailbox Spam {
>    auto = subscribe
>    special_use = \Junk
>  }
[48/4646]
>  mailbox Trash {
>    special_use = \Trash
>  }
>  prefix =
>  separator = .
>  subscriptions = yes
>  type = private
> }
> passdb {
>  args = /etc/dovecot/dovecot-ldap.conf.ext
>  driver = ldap
> }
> plugin {
>  default_language = de
>  fts = lucene
>  fts_lucene = whitespace_chars=@.
>  mail_replica = tcp:172.16.1.1:12345
>  quota = maildir:User quota
>  quota_rule = *:storage=4G
>  quota_rule2 = Trash:storage=+100M
>  quota_rule3 = Spam:ignore
>  quota_warning = storage=95%% quota-warning 95 %u
>  quota_warning2 = storage=80%% quota-warning 80 %u
>  sieve = /etc/sieve/%n.sieve
>  sieve_default = /etc/sieve/default.sieve
>  sieve_dir = ~/sieve
>  sieve_extensions = +editheader
> }
> postmaster_address = postmaster at wogri.at
> protocols = " imap lmtp pop3"
> service aggregator {
>  fifo_listener replication-notify-fifo {
>    user = dovecot
>  }
>  unix_listener replication-notify {
>    user = dovecot
>  }
> }
> service doveadm {
>  inet_listener {
>    port = 12345
>  }
> }
> service imap {
>  process_limit = 1024
> }
> }
> service lmtp {
>  inet_listener lmtp {
>    address = 127.0.0.1
>    port = 2003
>  }
>  user = dovecot
> }
> service managesieve-login {
>  inet_listener sieve {
>    port = 4190
>  }
>  service_count = 1
> }
> service pop3 {
>  process_limit = 1024
> }
> service quota-warning {
>  executable = script /usr/local/sbin/quota-warning.sh
>  unix_listener quota-warning {
>    user = dovecot
>  }
>  user = dovecot
> }
> service replicator {
>  process_min_avail = 1
>  unix_listener replicator-doveadm {
>    mode = 0600
>  }
> }
> ssl = required
> ssl_cert = </etc/exim4/server.cert.pem
> ssl_key = </etc/exim4/server.key.pem
> userdb {
>  args = /etc/dovecot/dovecot-ldap.conf.ext
>  driver = ldap
> }
> protocol lmtp {
>  mail_plugins = quota sieve virtual notify replication
> }
> protocol lda {
>  mail_plugins = quota fts fts_lucene virtual notify replication sieve
> }
> protocol imap {
>  mail_max_userip_connections = 50
>  mail_plugins = quota fts fts_lucene virtual notify replication imap_quota
> }
>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4127 bytes
Desc: not available
URL:
<http://dovecot.org/pipermail/dovecot/attachments/20150621/684ab8df/attachment-0001.p7s>