python-interpreter stirbt

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Oscar426
User
Beiträge: 14
Registriert: Mittwoch 24. Februar 2010, 20:46

Hallo,

wir setzen python auf einem arm9-system ein und haben sehr damit zu kämpfen das der Interpreter gerne mal mit Segmentation Fault oder Illegal Instruction crasht.
Dies scheint immer bei einem subprocess.call() bzw os.system() / os.popen() aufzutreten. Also nicht jeder Aufruf führt zu einem Crash aber wenn es mal crasht dann war es einer dieser Aufrufe. Das ganze tritt unter python 2.5 (Zielsystem ist lenny) also auch unter 2.6 (squeeze) auf. Es scheint auch damit zusammen zuhängen das wir viel mit Threads arbeiten. Ein kleines Testprogramm das immer wieder die verdächtigen Kommados aufruft mag jedenfalls nicht crashen ...
Hat evtl. jemand Tipps wie man den Fehler systematisch eingrenzen kann bzw, gibt es typische Programmierfehler die zu solchen Crashes führen können?

Bin dankbar für jeden Tipp!

Grüße,
Oscar
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Wenn ihr viel mit Threads arbeitet und solche Fehler auftreten, wäre mein erster Verdacht eine nicht ausreichend abgesicherte, von den Threads gemeinsam genutzte Ressource. Außerdem würde ich mir die aufgerufenen Programme mal im Hinblick auf Speichernutzung anschauen. Was sind das für Programme?

Bei hatte dieser Fehler immer damit zu tun, daß ich unbeabsichtigterweise versucht habe, mehrmals auf den gleichen Speicherbereich zuzugreifen bzw. beim Schreiben den zulässigen Bereich überschritt.
Oscar426
User
Beiträge: 14
Registriert: Mittwoch 24. Februar 2010, 20:46

Pekh hat geschrieben:Wenn ihr viel mit Threads arbeitet und solche Fehler auftreten, wäre mein erster Verdacht eine nicht ausreichend abgesicherte, von den Threads gemeinsam genutzte Ressource. Außerdem würde ich mir die aufgerufenen Programme mal im Hinblick auf Speichernutzung anschauen. Was sind das für Programme?
nichts großes eigentlich ... zB /bin/sync
Bei hatte dieser Fehler immer damit zu tun, daß ich unbeabsichtigterweise versucht habe, mehrmals auf den gleichen Speicherbereich zuzugreifen bzw. beim Schreiben den zulässigen Bereich überschritt.
naja wir greifen eigentlich nicht direkt auf Speicherbereiche zu. Wäre es denn denkbar das der arm9-built von Python schlicht nicht so sonderlich stabiel ist?
Oscar426
User
Beiträge: 14
Registriert: Mittwoch 24. Februar 2010, 20:46

also nach viel rumprobiere und rumgegoogle scheint sich herauszustellen das der subprocess-Aufruf auf der arm-platform nach vor nicht threadsicher ist und ich eine Möglichkeit finden muss aus einem Thread heraus einen neuen, autarken Prozess zu starten der diese subprocess-kommands dann ausführt, ... und wie ich dann Daten zwischen diesen Prozessen austausche ...

das http://bugs.python.org/issue1236 hier ausglistete Progrämmchen segfault auf unserer Arm-Platform, während es auf einem Intel (beide Lenny) problemlos durchläuft, also irgendwas scheint bei der Arm-Portierung faul zu sein ...
Antworten