XEN User-Domäne friert ein

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.