27. Dezember 2005
Ihr Problem
Bei der Arbeit mit XEN 2.0.5c (z.B. unter SUSE LINUX 9.3) friert ein Gastsystem (eine User-Domäne) ein.
Teilweise ist es möglich, die Domain (z.B. mit dem Namen testdom) mit
root@linux# xm destroy testdom
zu löschen und anschließend neu zu starten. Teilweise muss jedoch das komplette
Wirtssystem neu gebootet werden.
Die Ursache
Obwohl die XEN-Version von SUSE LINUX 9.3 sehr stabil läuft, gibt es einen Fehler
bei der Behandlung von Coredumps in den User-Domains. Wenn ein normales Anwenderprogramm
- es muss noch nichtmal als root laufen - einen Coredump erzeugt (z.B.
durch einen Segmentation fault), dann kann es zu obigem Phänomen kommen.
Dabei ist nicht der Programmabsturz das Problem, sondern das Erzeugen des Coredumps
selbst.
Die Lösung
Leider ist uns derzeit keine ursächliche Lösung des Problems bekannt.
Das Problem tritt aber nicht mehr auf, wenn man die Erzeugung von Coredumps
verhindert. Dies geht durch Setzen der maximalen Coredump-Größe auf 0 mit
ulimit. Dies ist eine Einstellung der Shell und wird an Unterprozesse
vererbt. Überprüfen Sie die Einstellung wie folgt:
user@linux> ulimit -c
unlimited
In diesem Beispiel sind Coredumps aktiviert. Sie deaktivieren diese mit:
user@linux> ulimit -c 0
Diese Einstellung gilt aber nur für die aktuelle Shell und von dort aus
gestartete Prozesse. Wenn dies systemweit gelten soll, können Sie den Befehl
z.B. in /etc/profile einbauen bzw. einen dort vorhandenen Befehl ändern.
Hinweis: Bei SUSE LINUX sind Coredumps per
Default deaktiviert, können aber von einem Benutzer individuell wieder eingeschaltet
werden.
|