Duplicate mails with pop3 + dsync replication

Wolfgang Hennerbichler
Mon, 22 Jun 2015 06:49:11 -0000

It turns out that if I enable this option:
pop3_deleted_flag = "$POP3Deleted?

The issue no longer persists. I have to manually expunge the kept mails that
have been deleted via pop3 though:
doveadm expunge mailbox INBOX KEYWORD '$POP3Deleted' -A

Wolfgang

> On 21 Jun 2015, at 21:05, Wolfgang Hennerbichler <wogri at wogri.com>
wrote:
>
> 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/20150622/92e1a58e/attachment.p7s>