Nimmt Postfix E-Mails an wenn das Dateisystem unerwarteterweise plötzlich read-only ist?

Hubert Schölnast hubert.schoelnast at gmail.com
Fr Okt 10 12:52:24 CEST 2014


Hallo

Ich habe Postfix auf einem virtuellen Server laufen und habe heute 
morgen erfahren, dass das Dateisystem meines Servers gegen Mitternacht 
in den read-only-Modus geschalten wurde. (Warum konnte man mir nicht 
sagen). Erst kurz nach 9 Uhr morgens wurde mein Server dann rebootet, 
seitdem läuft er wieder normal.

Angeblich ist er in diesen 9 Stunden weitergelaufen, konnte aber nichts 
(weder empfangene E-Mails noch Log-Einträge noch sonst etwas) auf die 
Festplatte schreiben.

Nun frage ich mich, wie Postfix in so einem Fall auf eingehende E-Mails 
reagiert. Ich halte zwei Varianten für denkbar:

A)
Postfix erkennt noch vor Ende des SMTP-Dialogs, dass es keine E-Mails 
speichern kann und meldet dem Client einen temporären Fehler. Dann ist 
alles gut, der Client wird später nocheinmal versuchen die E-Mail 
zuzustellen, so lange bis es endlich klappt oder bis ein Timeout 
abläuft. In diesem Fall erhält der Absender vom Client eine Nachricht 
die ihn über die Unzustellbarkeit informiert.

B)
Postfix bemerkt das nicht vor Ende des SMTP-Dialogs.
Der Client baut eine TCP-Verbindung zu meinem Postfix auf, dieser meldet 
sich mit 220. Auf HELO usw. antwortet Postfix mit 250, dann sendet der 
Client DATA und Postfix antwortet mit 354.
Jetzt sendet der Client die eigentliche E-Mail und Postfix empfängt die 
Daten und hält sie zumindest während des Empfangens im RAM-Speicher vor.
Und jetzt kommt die entscheidende Frage:
Schreibt Postfix die empfangenen Daten auf die Festplatte bevor es an 
den Client 250 (oder 4xx/5xx) sendet?
Wenn nein, erhält nämlich der Client die Information, dass er die E-Mail 
erfolgreich zugestellt hat (250). Es folgen QUIT und 221, dann wird die 
TCP-Verbindung abgebaut und die Verbindung ist damit getrennt. Der 
Client kann die E-Mail aus seinem Speicher löschen, weil er ja von 
meinem Postfix die Meldung bekommen hat, dass die E-Mail empfangen 
worden ist.
Aber Postfix wird scheitern wenn es versucht die E-Mail auf die 
schreibgeschützte Festplatte zu schrieben und hat keine Möglichkeit 
mehr, nachträglich den Client zu informieren. Die E-Mail wäre in diesem 
Fall verloren.

Ich vermute ja, dass Postfix erst die empfangenen Daten wirklich 
physisch in den Permanentspeicher schreibt und erst dann den Empfang der 
Nachricht bestätigt, aber das ist eben nur eine Vermutung.

Kann das jemand definitiv bestätigen?

Danke!

LG
Hubert Schölnast


Mehr Informationen über die Mailingliste postfix-users