Mein Bug

Heute ist ein großartiger Tag – das stelle ich jetzt einfach mal so in den Raum. Chris hat „meinen Bug“ im Btrfs gefixed. Hier mal ein paar Dinge dazu:

Mein Test am Dateisystem ist nebst dem täglichen Gebrauch auch der tägliche Gebrauch eines Gentoo-Users – compilen. Damit es auch wirklich Spass macht, baue ich mir einen KDE Snapshot. Frisch von anonsvn.kde.org. Da ein Crash des Dateisystems, auf welchen ich es ja anlege, einen kompletten Datenverlust auf der Partition hinnehmen muss, habe ich eine Sicherung des Checkouts auf der Seite liegen. Mein Bug trat dabei dann auf, wenn ich eben genau diese Sicherung bei mir entpacke und somit eine Datenmenge von 3 GB überschreite.

Warum der Bug schwer zu finden war und natürlich nur bei mir auftrat, lag daran, dass ich meinen Kernel abgespeckt habe und CONFIG_LBD nicht gesetzt hatte. Dadurch wurden ein simpler Überlauf einiger Felder unseres Dateisystems verursacht und wir schrieben sozusagen über unsere Grenzen hinaus, was dazu führte, dass wir unter Anderem nebst unseren normalen Daten auch sogenannte Superblocks überschrieben, was natürlich zu einem defekten Dateisystem führte. Das Ergebnis war ein fataler Crash und ein defektes Dateisystem und ein weiterer Bug-Report an Chris Mason, welcher schon ziemlich verblüfft auf den Bug schaute.

Heute hat er ihn festgenagelt und mir das Problem erklärt. Die Lösung war angeblich ziemlich simpel, indem die Felder auch auf 32-Bit Systemen auf 64 Bit erweitert wurden, was damit die Felder des Dateisystems korrigierte. Das Ergebnis ist, dass mein Entpack-Test durchlief.