Möglicher Niveau-Verlust bei Heise
Heise hatte gestern abend eine heiße Schlagzeile:
Möglicher Datenverlust bei Ext4
Und wie es sich für so eine Bild-Schlagzeile gehört mit einem großen orangenen Warndreieck daneben.
Kurze Hintergrund-Information: Die nächste Ubuntu-Version kommt mit dem neuen Linux-Dateisystem "ext4". Nun wurde festgestellt, dass bei einem Absturz kurz nach dem Start die Konfigurationsdateien von KDE und Gnome zerstört (= geleert) sein können, was einen erneuten Start etwas schwierig macht. Nach einer kurzen Analyse hat der Entwickler des Dateisystems, Ted Ts'o, einen Workaround geschrieben, aber auch deutlich gemacht, dass eigentlich die Anwendung fehlerhaft programmiert ist.
Und im Heise-Forum ging die Flamerei los!
- Nein, lieber Ted. Die Anwendungen arbeiten korrekt
- Ach ja? Warum zeigt dann ZFS nicht ein solches Verhalten?
- Als Dateisystemlaie kann ich hier beim besten Willen den Fortschritt nicht erkennen, wenn bestimmte Dinge die früher super funktioniert haben auf einmal nichtmehr gehen.
Erst nach sechs Stunden hat sich mal jemand die Mühe gemacht, den Original-Kommentar von Ted Ts'o zu lesen. Kurz zusammengefasst: Viele Programmierer verlassen sich darauf, dass nach einem close()
die Dateien auf der Festplatte liegen - was aber per Definition nicht wahr ist, erst ein flush()
stellt dies sicher. Und damit ist es definitiv ein Fehler in der Anwendung, der halt erst dann auffällt, wenn das Dateisystem - wie auch ext4 - die Daten aus Performanz-Gründen lange im Speicher behält.
Aber das wirklich hässliche am Heise-Forum ist: All diese unqualifizierten Beiträge sind grün bewertet worden.
Nachtrag: Eine kurze und gute Erklärung des Problems auf deutsch gibt es inzwischen auch.
Nachtrag 2:
Ablauf einer Dateioperation:
open("w")Achtung Betriebssystem, ich möchte in diese Datei schreiben, lass bloß niemand anderen da jetzt dran!close()So, ich bin fertig, nun dürfen andere auch wieder.flush()Hey Betriebssystem, ich hoffe, DU bist auch fertig mit der Datei.