POP3 Fehler bei Delete und dsync Replikation
Hallo,
ich habe hier ein kleines Problem mit der master/master-Replikation
von Dovecot. Es laufen 2 Server mit je einem Postfix und einem
Dovecot, beides jeweils aus den Quellen erzeugt.
Dovecot 2.2.5 und Postfix 2.10.0
Grundsätzlich läuft es so.
– 3 Vorgelagerte (andere Standort) Postfixe liefern die E-Mails an den
auf dem lokalen System laufenden Postfix (VPN) (DNS Round-Robin)
– diese übergeben die Mails (LMTP zuvor LDA) an den lokalen Dovecot
der legt Sie in mdbox-en ab
– die beiden Dovecots machen eine Replikation wie hier
(http://wiki2.dovecot.org/Replication) beschrieben
Das alles funktioniert auch Tadellos.
Will nun ein Nutzer seine E-Mails per POP und DELE löschen wird dies
vom Dovecot bestätigt (steht auch so im Log) aber nicht ausgeführt
(egal wie lange man wartet). Holt der Nutzer die E-Mails erneut via
POP ab und löscht sie erneut, so wird diese auch tatsächlich gelöscht.
Leider bekommen die Nutzer diese E-Mails nun doppelt (außer der Client
ist Clever genug zu erkennen, dass es sich um eine bereits vorhandene
E-Mail handelt).
Es ist immer so, dass das DELE für die entsprechende E-Mail 2 mal
ausgeführt werden muss. Dabei spielt es keine Rolle ob das DELE zwei
mal auf dem gleichen Server oder einmal auf Server 1 und einmal auf
Server 2 ausgeführt wird. Auch die Zeitspanne zwischen den beiden
Kommandos ist egal (Test von ca. 5 Sekunden bis hoch zu 3 Stunden
(replication_full_sync_interval = 1 hour)).
Dies ist immer reproduzierbar, es spielt keine Rolle auf welchem
Server die E-Mail ankommt oder auf welchem Sie abgerufen (gelöscht)
wird.
Deaktiviere ich nun die Replikation läuft alles wie gewohnt.
-
31. August 2013
-
Technik kdmails.de
-
5 Antworten
Hallo nochmal,
hat keiner eine Idee woher dieses Verhalten kommen kann.
Was ich beim letzen mal vergessen hatte, eine manuelle Replikation
funktioniert. Egal von wo nach wo, und sie hat auch keinen Einfluss
auf das Löschverhalten.
Danke
Daniel
Zitat von „Technik kdmails.de“ :
> Hallo,
>
> ich habe hier ein kleines Problem mit der master/master-Replikation
> von Dovecot. Es laufen 2 Server mit je einem Postfix und einem
> Dovecot, beides jeweils aus den Quellen erzeugt.
> Dovecot 2.2.5 und Postfix 2.10.0
>
> Grundsätzlich läuft es so.
> – 3 Vorgelagerte (andere Standort) Postfixe liefern die E-Mails an
> den auf dem lokalen System laufenden Postfix (VPN) (DNS Round-Robin)
> – diese übergeben die Mails (LMTP zuvor LDA) an den lokalen Dovecot
> der legt Sie in mdbox-en ab
> – die beiden Dovecots machen eine Replikation wie hier
> (http://wiki2.dovecot.org/Replication) beschrieben
>
> Das alles funktioniert auch Tadellos.
>
> Will nun ein Nutzer seine E-Mails per POP und DELE löschen wird dies
> vom Dovecot bestätigt (steht auch so im Log) aber nicht ausgeführt
> (egal wie lange man wartet). Holt der Nutzer die E-Mails erneut via
> POP ab und löscht sie erneut, so wird diese auch tatsächlich
> gelöscht. Leider bekommen die Nutzer diese E-Mails nun doppelt
> (außer der Client ist Clever genug zu erkennen, dass es sich um eine
> bereits vorhandene E-Mail handelt).
>
> Es ist immer so, dass das DELE für die entsprechende E-Mail 2 mal
> ausgeführt werden muss. Dabei spielt es keine Rolle ob das DELE zwei
> mal auf dem gleichen Server oder einmal auf Server 1 und einmal auf
> Server 2 ausgeführt wird. Auch die Zeitspanne zwischen den beiden
> Kommandos ist egal (Test von ca. 5 Sekunden bis hoch zu 3 Stunden
> (replication_full_sync_interval = 1 hour)).
>
> Dies ist immer reproduzierbar, es spielt keine Rolle auf welchem
> Server die E-Mail ankommt oder auf welchem Sie abgerufen (gelöscht)
> wird.
>
> Deaktiviere ich nun die Replikation läuft alles wie gewohnt.
>
>
> _______________________________________________
> Dovecot Mailingliste
> JPBerlin – Politischer Provider
> Dovecot@listen.jpberlin.de
> https://listen.jpberlin.de/mailman/listinfo/dovecot
Am 31.08.2013 17:28, schrieb Technik kdmails.de:
Hallo Unbekannt,
ich räume gerade alte Mails auf und bin nochmal auf Dein Problem gestoßen.
Ist das noch aktuell oder hat sich das geklärt?
> Will nun ein Nutzer seine E-Mails per POP und DELE löschen wird dies vom
> Dovecot bestätigt (steht auch so im Log) aber nicht ausgeführt (egal wie
> lange man wartet). Holt der Nutzer die E-Mails erneut via POP ab und
> löscht sie erneut, so wird diese auch tatsächlich gelöscht. Leider
> bekommen die Nutzer diese E-Mails nun doppelt (außer der Client ist
> Clever genug zu erkennen, dass es sich um eine bereits vorhandene E-Mail
> handelt).
Merkwürdig, dafür habe ich zunächst keine Erklärung.
Mich würde dann jetzt interessieren:
*) Der output von doveconf -n
*) Hast Du maöl mit mail_log protoklliert, siehe PDF im Anhang?
*) Hast Du das mal auf Protokollebene mit rawlog debuggt?
Peer
—
Heinlein Support GmbH
Schwedter Str. 8/9b, 10119 Berlin
http://www.heinlein-support.de
Tel: 030 / 405051-42
Fax: 030 / 405051-19
Zwangsangaben lt. §35a GmbHG: HRB 93818 B / Amtsgericht
Berlin-Charlottenburg,
Geschäftsführer: Peer Heinlein — Sitz: Berlin
Hallo Peer,
ich hoffe unbekannt ist nun vorbei, hatte den Webmailer gerade neu
aufgesetzt und noch keine Daten drin. Ja das Problem besteht immer noch.
Danke Daniel
Zitat von Peer Heinlein :
> Am 31.08.2013 17:28, schrieb Technik kdmails.de:
>
>
> Hallo Unbekannt,
>
> ich räume gerade alte Mails auf und bin nochmal auf Dein Problem gestoßen.
>
> Ist das noch aktuell oder hat sich das geklärt?
>
>> Will nun ein Nutzer seine E-Mails per POP und DELE löschen wird dies vom
>> Dovecot bestätigt (steht auch so im Log) aber nicht ausgeführt (egal wie
>> lange man wartet). Holt der Nutzer die E-Mails erneut via POP ab und
>> löscht sie erneut, so wird diese auch tatsächlich gelöscht. Leider
>> bekommen die Nutzer diese E-Mails nun doppelt (außer der Client ist
>> Clever genug zu erkennen, dass es sich um eine bereits vorhandene E-Mail
>> handelt).
>
> Merkwürdig, dafür habe ich zunächst keine Erklärung.
>
> Mich würde dann jetzt interessieren:
>
> *) Der output von doveconf -n
> *) Hast Du maöl mit mail_log protoklliert, siehe PDF im Anhang?
> *) Hast Du das mal auf Protokollebene mit rawlog debuggt?
>
>
> Peer
>
>
>
> —
> Heinlein Support GmbH
> Schwedter Str. 8/9b, 10119 Berlin
>
> http://www.heinlein-support.de
>
> Tel: 030 / 405051-42
> Fax: 030 / 405051-19
>
> Zwangsangaben lt. §35a GmbHG: HRB 93818 B / Amtsgericht
> Berlin-Charlottenburg,
> Geschäftsführer: Peer Heinlein — Sitz: Berlin
Hallo Peer,
Zitat von Peer Heinlein :
> Mich würde dann jetzt interessieren:
>
> *) Der output von doveconf -n
# 2.2.5: /usr/local/dovecot-2.2.5/etc/dovecot/dovecot.conf
# 2.2.5: /usr/local/dovecot-2.2.5/etc/dovecot/dovecot.conf
# OS: Linux 3.5.0-39-generic x86_64 Ubuntu 12.04.3 LTS
auth_mechanisms = plain login digest-md5 cram-md5
disable_plaintext_auth = no
doveadm_password = XXX
doveadm_port = 12345
dsync_remote_cmd = ssh -l%{login} %{host}
/usr/local/dovecot/bin/doveadm dsync-server -u%u
hostname = mailstorage.XXX
mail_plugins = “ notify replication“
mbox_lazy_writes = no
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = Drafts
}
mailbox Junk {
special_use = Junk
}
mailbox Sent {
special_use = Sent
}
mailbox „Sent Messages“ {
special_use = Sent
}
mailbox Trash {
special_use = Trash
}
prefix =
}
passdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
plugin {
mail_log_events = delete expunge
mail_replica = tcp:172.17.0.2:12345
replication_full_sync_interval = 1 hour
}
postmaster_address = postmaster@XXX
service aggregator {
fifo_listener replication-notify-fifo {
user = vmail
}
unix_listener replication-notify {
user = vmail
}
}
service auth {
unix_listener /usr/local/postfix/var/spool/postfix/private/auth {
mode = 0666
user = postfix
}
unix_listener auth-userdb {
group = vmail
mode = 0666
user = vmail
}
}
service config {
unix_listener config {
user = vmail
}
}
service doveadm {
inet_listener {
address = 172.17.0.1
port = 12345
}
user = vmail
}
service lmtp {
process_min_avail = 5
unix_listener /usr/local/postfix/var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0600
user = postfix
}
user = vmail
}
service replicator {
process_min_avail = 1
unix_listener replicator-doveadm {
mode = 0666
}
}
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = *) Hast Du maöl mit mail_log protoklliert, siehe PDF im Anhang?
Nein, das werde ich heute Abend mal machen.
> *) Hast Du das mal auf Protokollebene mit rawlog debuggt?
Nein, das werde ich dann auch noch machen müssen.
>
>
> Peer
Daniel
Hallo Peer,
jetzt habe ich die anderen Daten. Man sieht schön, dass er die E-Mail
2mal löscht. Ich habe schon Stunden auf das löschen gewaret, es ist
nichts passiert. Löscht man die E-Mail ein zweites mal – egal auf
welchem Server – verschwindet Sie dann auch.
> *) Hast Du maöl mit mail_log protoklliert, siehe PDF im Anhang?
20130927-164650-17033.in
list
retr 1342
list
dele 1342
quit
20130927-164650-17033.out
+OK Logged in.
+OK 1342 messages:
1 10174
2 6103
…
1341 6665
1342 5608
.
+OK Marked to be deleted.
+OK Logging out, messages deleted.
20130927-164720-17041.in
list
dele 1342
quit
20130927-164720-17041.out
+OK Logged in.
+OK 1342 messages:
1 10174
2 6103
…
1341 6665
1342 5608
.
+OK Marked to be deleted.
+OK Logging out, messages deleted.
> *) Hast Du das mal auf Protokollebene mit rawlog debuggt? Peer
Sep 27 16:46:50 mailstorage02 dovecot: pop3-login: Login: user=,
method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=17031, secured,
session=
Sep 27 16:47:08 mailstorage02 dovecot: pop3(tech): expunge: box=INBOX,
uid=9244,
msgid=,
size=5449
Sep 27 16:47:08 mailstorage02 dovecot: pop3(tech): Disconnected: Logged
out top=0/0, retr=1/5626, del=1/1342, size=11043306
Sep 27 16:47:20 mailstorage02 dovecot: pop3-login: Login: user=,
method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=17039, secured,
session=
Sep 27 16:47:27 mailstorage02 dovecot: pop3(tech): expunge: box=INBOX,
uid=9245,
msgid=,
size=5449
Sep 27 16:47:27 mailstorage02 dovecot: pop3(tech): Disconnected: Logged
out top=0/0, retr=0/0, del=1/1342, size=11043306
>
>
> _______________________________________________
> Dovecot Mailingliste
> JPBerlin – Politischer Provider
> Dovecot@listen.jpberlin.de
> https://listen.jpberlin.de/mailman/listinfo/dovecot