Durch eigenes QT-Programm bedingten Systemabsturz abfangen

Verschiedenes zu Qt
Antworten
GoaSkin
Beiträge: 103
Registriert: 13. Juni 2007 00:14
Wohnort: Darmstadt

Durch eigenes QT-Programm bedingten Systemabsturz abfangen

Beitrag von GoaSkin »

Hallo,

ich habe ein QT-Programm geschrieben, das - sofern es läuft - den Rechnern nach einigen Betriebsstunden zum Absturz bringt (Ubuntu 14.04 i386). Der Rechner friert dabei direkt ein, sodass kein Kernel Panic o.Ä. geloggt oder gemeldet wird. Die Ursache ist mir noch nicht bekannt.

Mich würde einmal interessieren, wie ich das Programm in einer Art Sandbox ausführen könnte, sodass ein Absturz des ganzen Systems definitiv vermieden wird und zum Problem ggf. etwas zu lesen sein wird.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Durch eigenes QT-Programm bedingten Systemabsturz abfang

Beitrag von Christian81 »

Das geht nicht wirklich. Aber wenn es das System einfriert kann es eigentlich nur ein MemoryLeak sein -> valgrind
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
GoaSkin
Beiträge: 103
Registriert: 13. Juni 2007 00:14
Wohnort: Darmstadt

Re: Durch eigenes QT-Programm bedingten Systemabsturz abfang

Beitrag von GoaSkin »

Jo danke...

auf dem System schlägt aber weder der OOM-Killer zu, noch zeigt das 'free'-Kommando eine kontinuierliche Steigerung der Speicherbelegung an.

Liegt es in diesem Falle Nahe, dass der RAM defekt?
hilefoks
Beiträge: 144
Registriert: 13. März 2008 16:09

Re: Durch eigenes QT-Programm bedingten Systemabsturz abfang

Beitrag von hilefoks »

Ich tippe nicht auf den RAM - kann sein, aber das wäre schon ein großer Zufall das ausschließlich dein Programm reproduzierbar immer die defekte Speicherstelle erwischt.

Sandbox - geht alles, ja. Aber auf die schnelle und einfach gehen dann nur virtuelle Maschinen mit VirtualBox, kemu und Co.

Steht vielleicht noch irgendwas brauchbares im syslog, nachdem du neu gebootet hast?

Grundsätzlich hätte ich auch auf einen Resource Leak getippt - dem System können ja auch andere Resourcen ausgehen (RAM, Filedeskriptoren, CPU, Festplattenspeicher, Sockets, ...). Falls du dein /tmp, /var/tmp oder sonstige Verzeichnisse in einer Ramdisk hast, könnte dir dort eine Datei den Speicher wegfressen. Oder u.U. ein anderes Verzeichnis, das beim booten e.v. automatisch geleert wird - /var/log wäre ein Kandidat. Oder dein Programm verschlingt irgendwann einfach die gesamte CPU bzw. permanent so viel, das die Kühlung deines Rechners nicht mehr reicht. Habe schon häufiger günstige Desktop-Systeme beobachtet, die es nicht verkraftet haben, wenn alle Kerne wirklich mal mehr als 10 Min. mit mehr als 70% belastet wurden.

Ansonsten musst du das System mal wirklich beobachten. Dazu brauchst du aber nicht gleich Nagios und Co. Wenn du das System einfach mal in Ruhe laufen lassen kannst, bis es dann abstürzt, dann würde ich mir einfach ein kleines Monitoring-Script schreiben. Das Script sollte einfach möglichst viele relevante Informationen sammeln und diese möglichst oft auf die Platte (am besten Netzlaufwerk oder externe Platte) schreiben - und fsync nicht vergessen. Dinge wie vmstat, du, lsof, /proc/[pid]/*, tail /var/log/messages, etc. kommen mir da spontan in den Sinn.
Antworten