Seite 1 von 1

Speicherüberlauf mit subprocess

Verfasst: Freitag 5. Januar 2018, 10:51
von Klaus73
Hallo zusammen,ich habe ein Python-Programm für den Raspberry Pi 3 geschrieben. Dieses soll unter anderem die WLAN-Teilnehmer auslesen (Der Raspberry Pi ist mit hostapd als Access-Point konfiguriert!). Dieses Programm ist nach einigen Stunden abgestürtzt. Nun habe ich mich auf die Fehlersuche begeben und dabei herausgefunden, dass es am Aufruf von Popen des subprocess-Moduls liegt. Um den Rest des Codes auszuschließen habe ich nun ein kleines Programm ausgearbeitet, welches nur die Verwendung des subprocess-Moduls enthält (siehe Codes unten).Nun stehe ich vor einem relativ kuriosen Problem: Immer nach ca. 30 Sekunden ist 1% vom RAM mehr belegt als vorher. Woher das genau kommt? Ich bin eherlich gesagt sprachlos und habe keine Idee mehr. Doch jetzt kommt noch etwas viel mehrwürdigers: Verwende ich an Stelle des Kommandos "iw dev wlan0 station dump" "ls -l /etc" habe ich das Problem mit dem RAM nicht. Woher kommt das?Die Probleme treten sowohl mit Python2 als auch mit Python3 auf.Ich bin für jede Hilfe dankbar.

Re: Speicherüberlauf mit subprocess

Verfasst: Freitag 5. Januar 2018, 10:59
von Sirius3
@Klaus73: „Code unten“ fehlt.

Re: Speicherüberlauf mit subprocess

Verfasst: Freitag 5. Januar 2018, 11:00
von __deets__
Ich denke nicht, das Python dafür verantwortlich ist. Deine eigene Fehleranalyse zeigt ja, das es am Kommando liegt. Versuch mal statt Python eine simple

while true; do iw....; done

Schleife in der Shell und brich das nach ein paar Sekunden ab. Wenn der Speicher dann auch verbraucht ist, kennen wir den Übeltäter.

Wenn das iw Kommando das Problem ist, dann kann das ggf auch auf einen Fehler im Kernel hinweisen. Da könnte ein Upgrade abhelfen.