Session-Probleme im Cluster durch Komplett-Restart behoben?
Update:
28.10.16, 01:03 Uhr: Der gesamte Restart war um 0:31 Uhr in 9 Minuten durchgeführt, davon ca. 7 Minuten Downtime für User. Alle Fehlermeldungen bezügl. des unten geschilderten Hazelcast-Problems sind schlagartig verschwunden. Wir werden die nächsten Tage beobachten können, ob sich damit auch alle anderen unerklärlichen Symptome erledigt haben und damit auf das Hazelcast-Problem zurückzuführen sind.
Liebe mailbox.org-Nutzer,
in den letzten Wochen war unser Webserver-Frontend sehr instabil, was zahlreiche Tickets im Support und auch Beschwerden im Forum hervorbrachte:
- User klagten über plötzliche Logouts oder Meldungen über verlorene IMAP-Mailverbindungen
- Konfigurationsänderungen durch uns sorgten für User-Logouts, die nicht hätten stattfinden dürfen
- Einige User klagten über Probleme in der ReaderEngine, also bei Textverarbeitung und Tabellenkalkulation
- User klagten (und zitierten) Fehlermeldungen über Server-Shutdowns, die diese eigentlich nie hätten sehen dürfen/können.
Auch wir waren über diverse Phänomene zunächst sehr ratlos; eigentlich ist die dahinterstehende Technik auf absolute Verfügbarkeit und Robustheit ausgelegt. So können wir sogar einzelne Rechner im Verbund jederzeit neu starten, und neu eingeloggte Nutzer werden dabei ohne irgendeine Beeinträchtigung oder Verbindungsverlust auf andere Knoten verteilt.
Die laufenden Verbindungen der Nutzer („Sessions“) werden dabei über einen speziellen Dienst namens „Hazelcast“ auf allen Knoten abgeglichen. Wird ein Serverknoten heruntergefahren, so verschiebt Hazelcast alle auf diesem Rechner laufenden Nutzer zunächst auf andere Server im Verbund, bevor er sich beendet. Auf diese Art und Weise können wir Updates und Konfigurationsänderung „reihum im Kreis“ durchführen, ohne dass unsere Nutzer davon irgendetwas mitbekommen („rolling updates“). Früher hat das auch wunderbar funktioniert, derzeit gibt es immer wieder für User sichtbare Auswirkungen, die eigentlich unerklärlich sind.
Aus den Verhaltensmustern und Fehlermeldungen sind wir und die dahinterstehenden Programmierer nun zu dem Schluß gekommen, dass sich vermutlich schon seit vielen Wochen und Monaten „alte Hazelcast Sessions“ in dieser ganzen Logik befinden, die noch einem alten Datenschema unterliegen. Vor vielen Versionen gab es damals eine Formatänderung in den Hazelcast-Sessions; schon damals hätten zeitgleich alle Hazelcast-Knoten ausgeschaltet werden müssen, um diese Sessions zu vergessen. Das wurde damals herstellerseitig jedoch nicht in den „Release Notes“ kommuniziert und war unbekannt. Und auch wenn es normalerweise Sinn und Zweck ist, dass immer mindestens ein Hazelcast-Knoten online ist um alle Sessions über die Zeit zu retten — in diesem Zusammenhang ist genau dies nun tödlich, denn nun sterben die kaputten, störenden Sessions nie aus. Entsprechende Hinweise dazu haben wir in den Logmeldungen der Systeme gefunden.
Wir haben darum kurzfristig für heute Nacht 0:30 Uhr eine Totalabschaltung aller Webserver von office.mailbox.org angesetzt. Diese wird vermutlich nur wenige Minuten dauern — sobald alle Dienste unten sind können diese sofort wieder gestartet werden. Doch vermutlich wird die Abschaltung einige Minuten benötigen bis auch der letzte Hazelcast versteht und akzeptiert, dass er seine verbleibenden Sessions nicht mehr übergeben kann, sondern löschen muss…
Bitte keine ungespeicherten Texte um 0:30 Uhr!
Mails gehen dabei nicht verloren; bitte achten Sie jedoch darauf, ab 0:30 Uhr bis zum Shutdown keine offenen Texte in der Textverarbeitung oder längere ungespeicherte E-Mails im Office-Webmail offen zu haben. Für normale Mailclients hat dieser Shutdown keine weiteren Auswirkungen.
Wir bitten um Entschuldigung und Verständnis für diese ca. 15 minütige Downtime, sind jedoch nach vielen Wochen durchgemachter Nächte mit Debugging und Fehleranalyse sehr zuversichtlich, dass wir hier die Ursache für eine ganze Vielzahl unerklärlicher und sporadischer Unzuverlässigkeits-Fehler gefunden haben, so dass auch wir die Downtime nicht auf die nächsten Tage schieben, sondern umgehend durchführen wollen. Erst wenn wir so sichergestellt haben, dass keine veralteten inkompatiblen Sessions mehr im Hazelcast geistern, wissen wir mehr.
Auf der Startseite von mailbox.org ist bereits ein entsprechender Hinweis-Banner geschaltet.
In diesem Sinne wünscht unser Team Ihnen eine „Gute Nacht“ und füllt uns selbst neues Wasser in die Kaffeemaschine.
Peer Heinlein