Postfix verliert From-Zeilen im Logfile nach Restart von Syslog/logrotate

Unter bestimmten Situationen ist auf Postfix-Servern zu beobachten, dass es nach einem Restart des Syslog-Daemon fortan keine From:-Zeilen mehr im Logfile gibt, während hingegen Message-ID und andere Logmeldungen normal weiter protokolliert werden.

Das Problem tritt auf, wenn der Queue-Manager qmgr in einer chroot-Umgebung läuft (siehe master.cf!) und er über einen Datei-Socket an Syslog schreiben möchte.

Werden Postfix und damit der qmgr neu gestartet,  so kann der qmgr den Syslog-Socket noch außerhalb der chroot-Umgebung ansprechen, erst dann wird der qmgr eingesperrt. -In diesen Situationen kann der gmgr den bereits geöffneten Syslog-Socket jedoch “mitnehmen”. Darum funktioniertalles, wenn Postfix frisch gestartet wird.

Kommt es dann jedoch zu einem Restart des Syslog, beispielsweise nach einem nächtlichen Durchlauf von logrotate, so wird der Syslog-Socket kurz geschlossen und neu angelegt. Der qmgr-Prozess in seiner chroot-Umgebung kann nun jedoch nicht mehr auf den Syslog-Socket zugreifen.

Die Folge: Die Syslog-Meldungen des qmgr können nicht mehr ins Logfile geschrieben werden, die Meldungen anderer Postfix-Komponenten jedoch schon.

Die Abhilfe: Der qmgr muß nicht in einer schroot-Umgebung laufen — einfach in der master.cf anpassen. Alternativ kann auch ein weiterer Syslog-Socket in der chroot-Umgebung angeboten werden.

Das ganze findet sich als unser Bug #519438 in Novells Bugzilla.