Register 5 · Blog · Blatt 41 · 2025-03
Festschreiben schlug bei 14 Berichten fehl: Ursache und Korrektur
12. März 2025 · Merle Hartkopf
Am 11. März gegen 08:40 Uhr haben uns zwei Betriebe gemeldet, dass sich Tagesberichte nicht festschreiben ließen. Bei der Prüfung der Kette zeigte die Weboberfläche für 14 Berichte eine Abweichung. Bis zur Korrektur am Vormittag des 12. März dauerte es etwa 26 Stunden. Die Inhalte der Berichte waren in dieser Zeit unverändert, es gab keine Datenverluste.
Ursache
Die Prüfsumme (SHA-256) eines Tagesberichts hängt von den Bytes seines Textes ab. Umlaute lassen sich in Unicode auf zwei Arten schreiben, zusammengesetzt (NFC) oder als Buchstabe plus Trema (NFD).
ä NFC: U+00E4 Bytes: C3 A4
ä NFD: U+0061 U+0308 Bytes: 61 CC 88
Texte, die jemand aus einem anderen Programm einfügt, kommen manchmal in NFD an. Beim Festschreiben und bei der Prüfung entstand aus demselben Text je nach Weg eine andere Byte-Folge und damit eine andere Summe. Die Prüfung meldete eine Abweichung. Der Fehler lag in unserem Code.
Korrektur
- Texte werden vor dem Speichern und vor der Prüfsumme auf NFC normalisiert.
- Die 14 betroffenen Berichte lassen sich seit dem 12. März festschreiben, ihre Prüfung zeigt keine Abweichung mehr.
- Die Kette der übrigen Berichte war nie betroffen.
Ein Test mit Umlauten in beiden Formen gehört jetzt zu jedem Release. Wir entschuldigen uns bei den beiden Betrieben, die einen Tag lang Berichte offen hatten, obwohl sie fertig waren.
Der Vorfall steht mit Dauer und Ursache auf der Seite /status/.