FreeBSD crash bei UFS dump
Vor einiger Zeit bin ich über einen ziemlich fiesen Bug in FreeBSD gestolpert, der das komplette System zum abstürzen bringt und das während dem Backup…
Ich hatte einen neue Server mit FreeBSD 9 installiert, als Dateisystem kam UFS mit den Standard Einstellungen zum Einsatz. Nachdem ich den Server im Rechenzentrum verschraubt hatte, habe ich ganz normal das Backup mit Amanda aktiviert….man will ja auch seine Kiste gesichert haben.
Als ich am nächsten morgen mich auf dem Server anmelden wollte kam die böse Überraschung. Der ganze Server war weg, nicht mal ein ging mehr. Mir blieb nichts anderes übrig als wieder ins Rechenzentrum zu fahren. Nachdem ich lokal eine Konsole angeschlossen hatte, merkte ich, dass selbst damit ein Login auf nicht mehr möglich war. Nach einem Reset konnte ich dann schließlich im Logfile noch die letzten Meldungen sehen…
Dec 17 01:18:57 havanna kernel: fsync: giving up on dirty
Dec 17 01:18:57 havanna kernel: 0xfffffe0003853960: tag devfs, type VCHR
Dec 17 01:18:57 havanna kernel: usecount 1, writecount 0, refcount 956 mountedhere 0xfffffe0003da7800
Dec 17 01:18:57 havanna kernel: flags ()
Dec 17 01:18:57 havanna kernel: v_object 0xfffffe0003505ca8 ref 0 pages 9467
Dec 17 01:18:57 havanna kernel: lock type devfs: EXCL by thread 0xfffffe003aac3460 (pid 15721)
Dec 17 01:18:57 havanna kernel: dev da0p2
Dec 17 01:19:09 havanna sendbackup[15713]: error [dump (15717) /sbin/dump returned 1]
Es hatte also was mit dem Backup zu tun. Nach einiger Recherche bin ich dann über folgenden Beitrag auf der FreeBSD Mailing Liste gestolpert http://lists.freebsd.org/pipermail/freebsd-stable/2012-January/065756.html
Wenn bei UFS Softupdates und Journaling gleichzeitig aktiviert sind und dump(8) ausgeführt wird, dann stirbt das ganze System. Sofern man weiterhin dump(8) verwenden will, bleibt einem nichts anderes übrig, als das Journaling zu deaktivieren. Dazu muss man allerdings das entsprechende Dateisystem ausgehängt sein. Wenn es sich um / handelt, muss man leider mit einer Live-CD booten. Zum deaktivieren muss dann tunefs(8) verwenden:
> umount
> tunefs -j disable
> mount
> cd
> rm .sujournal
Danach funktionierte das Backup mit dump(8) wieder einwandfrei. Ich glaube der Bug ist sogar noch in FreebSD 9.1 drin, ich habe jedenfalls noch nichts gefunden, dass er behoben ist.
Mehr