Login
Login-Name Passwort


 
Newsletter
Werbung

Fr, 29. Januar 2010, 16:07

Software::Kernel

Schöner abstürzen mit Kernel-Modul provoke_crash

Ein neues Kernel-Modul, das Abstürze gezielt auslöst, verzückt Entwickler und Tester.

Zum Testen ist es bisweilen notwendig, einen Linux-Kernel gezielt zum Absturz zu bringen. Sei es zu Debuggen von Crash-Dumps; wenn getestet werden soll, ob in einem Cluster nach dem Absturz eines Rechners das Failover richtig funktioniert; zum Testen, ob Watchdogs richtig arbeiten; zum Testen, ob in einem eingebetteten System, das neben Linux noch andere Software enthält, diese Software nach einem Linux-Crash weiterläuft; oder gar zum Testen, ob ein Dateisystem oder Anwendungssoftware nach einem Absturz wieder sauber hochfährt: die Zahl der möglichen Anwendungen ist unbegrenzt.

Wenig hilfreich war es für die Tester da bisher, dass sie den Absturz irgendwie auslösen mussten. Beim Warten auf den nächsten Absturz hätte so mancher das Pensionsalter erreicht, ohne je einen Absturz erlebt zu haben. So behalf man sich entweder damit, den Rechner auszuschalten oder bewusst fehlerhaften Code in den Kernel einzubauen, der garantiert an einer bestimmten Stelle abstürzt.

Ein Kernel-Patch von Simon Kagstrom von Net Insight macht das Leben für diesen Personenkreis nun leichter. Er führt ein neues Kernel-Modul provoke_crash ein, das durch ein einfaches Schreiben in spezielle Dateien im Debug-Dateisystem den Kernel auf verschiedene Weise abstürzen lassen kann. Das Debug-Dateisystem debugfs ist ein Dateisystem für Entwickler, das im normalen Betrieb üblicherweise nicht gemountet ist. Das Modul ist wie auch debugfs optional und kann zur Laufzeit geladen und entladen werden.

Das Modul legt Dateien im Debug-Dateisystem an, deren Beschreiben mit Ausnahme von »bugon«, das nur eine Meldung im Kernel-Log erzeugt, sofort Wirkung zeigen sollte: Sie überschreiben kritische Kernel-Teile wie den Stack oder einen allokierten Speicherblock, lösen eine direkte Kernel-Panik aus oder verursachen andere Ausnahmen. Das Dereferenzieren eines NULL-Pointers sollte ebenfalls eine Panik erzeugen, was jedoch, wie die Vergangenheit zeigte infolge einer unglücklichen Verkettung von Umständen nicht immer funktionierte.

Andrew Morton fand Gefallen an dem Patch, da er zu den Dingen gehöre, die viele Entwickler ad-hoc einmal geschrieben haben, weil sie es gerade brauchten. »Es ist wahrscheinlich sinnvoll, es einmal, und dann richtig zu machen, damit das Rad nicht immer wieder neu erfunden werden muss«, so Morton.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung