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

  1. Daniel Gompf sagt:

    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

  2. Peer Heinlein sagt:

    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

    • Daniel Gompf sagt:

      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

    • Daniel Gompf sagt:

      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

    • Daniel Gompf sagt:

      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