Nachdem ich die VM mit dem lokalen mail-Server völlig neu aufgesetzt hatte, hatte ich das Problem, dass ich nach dem Booten der VM keine Mails von Client abrufen konnte. Dovecot (imap/pop3-Server) lief nach dem Boot einfach nicht.
Irgendwie wollte Dovecot beim Booten nicht starten, obwohl er sich von Hand per sudo /etc/init.d/dovecot start problemlos zum Laufen bringen ließ. Das Script war auch für die entsprechenden Runlevel richtig verlinkt, sodass es hätte laufen müssen.
Entsprechende Recherchen ergaben keine entsprechenden Probleme bei anderen Usern. Ein ein entsprechende Posting ins Ubuntuusers-Forum ergab auch keine Lösung.
Dieser Tage fiel mein Blick – eher aus Zufall – auf diese Zeilen im syslog:
Apr 17 19:13:29 mail ntpdate[3168]: step time server 91.189.94.4 offset -154.859702 sec
Apr 17 19:10:54 mail dovecot: Time just moved backwards by 154 seconds. This might cause a lot of problems, so I’ll just kill myself now. http://wiki.dovecot.org/TimeMovedBackwards
Ich hatte sie schon mehrfach gelesen, aber irgendwie war der Inhalt nicht bei mir angekommen.
Dovecot wurde erfolgreich gestart. Ein nachfolgernder Prozess ruft ntpdate auf, das die Systemzeit in einem Sprung um 154s in die Vergangenheit setzt, sodass Dovecot Probleme wittert und sich selbst beendete.
Also habe ich per ntpdate die Systemzeit der Dom0 gesetzt und mit hwclock die Hardwareuhr gestellt. Damit sollte das Problem gelöst sein, weil die VM beim Booten die zutreffende Zeit geliefert bekommen sollte.
Beim nächsten Booten des mail-Servers guckte ich nicht schlecht, als sich Dovecot mit dem gleichen Hinweis wieder beendete. Und tatsächlich war die Zeit erneut um -154s verstellt worden.
Nach etwas Rumprobieren habe ich mich dafür entschieden einen ntpd auf dem mail-Server zu installieren. Dies ist die von Dovecot empfohlene Lösung für mail-Server, die nicht ins VMs laufen. Bei Xen-VMs soll ein ntpd in der Dom0 ausreichen, weil die Zeit von der Dom0 durchgereicht wird. (Bei mir hat die korrekt in der Dom0 gesetzte Zeit aber nix gebracht.)
Der ntpd in der mail-Server-VM hat für mich das Problem gelöst. Passenderweise wird der ntpd noch vor Dovecot gestartet, sodass eine Zeitkorretur vor dem Start von Dovecot erfolgen sollte. Weiterhin vermeidet der ntpd Zeitsprünge, sondern beschleunigt oder bremst die Systemuhr leicht, bis die Zeit stimmt.