writing /opt/fhem/FHEM/controls_fhem.txt failed

Begonnen von Steffen, 06 Mai 2016, 11:54:56

Vorheriges Thema - Nächstes Thema

Steffen

Hallo,

Ich hatte den Server jetzt neu gestartet und gleich ein Update ausgeführt aber der gleiche Fehler und die Zombies bleiben...wenn ich Fhem per shell runterfahre dann verschwinden auch die Zombies, wenn ich Fhem wieder starte dann kommen die "Z" wieder...

Mfg Steffen

automatisierer

Diese Zombies habe ich auch. Bei mir kommen die von ein paar Lan-Pings. Die Pings funktionieren aber dennoch alle. Vermute das es mit dem Start von FHEM zusammen zu hängen, evtl. ist das System dann grad überlastet. Wenn ich die Pings auf disable 1 setze und nach dem start von fhem wieder auf disable 0, dann gibts keine Zombies. Aber mich haben sie noch nicht gestört...

Ich habe auch noch Zeit damit verbracht mich über Linux Zombies zu informieren. Von Datei blockierungen habe ich nirgends etwas gelesen (was natürlich immer noch nicht bedeutet, dass es unmöglich ist). Allerdings werden die PID's blockiert und das kann irgendwann problematisch werden, da deren Anzahl begrenzt ist.


viegener

Ich denke wir sind in der Phase Ursachen auszuschliessen (und die Zombies waren ein Kandidat und sind es vielleicht immer noch)?

Generell bin ich etwas ratlos und mein Vorschlag wäre Debugs in 98_update einzubauen, aber ich weiss nicht ob jemand anders eine bessere Idee hat?
(Dazu wäre es wichtig genau zu schauen welche Version 98_update hat -> also etwas wie
# $Id: 98_update.pm 10942 2016-02-26 11:08:14Z rudolfkoenig $
in der Datei.

Die Frage nach der perl-Version auf dem alten cubie ist allerdings noch offen.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Prof. Dr. Peter Henning

Hier etwas zum Thema

ZitatIf some process has the pipe open for writing and O_NONBLOCK is clear, read() shall block the calling thread until some data is written or the pipe is closed by all processes that had the pipe open for writing.

http://linux.die.net/man/3/read

LG

pah

viegener

Zitat von: Prof. Dr. Peter Henning am 11 Mai 2016, 20:02:48
Hier etwas zum Thema

http://linux.die.net/man/3/read

LG

pah

Ich bin nicht ganz sicher ob ich den Vorschlag verstehe, glaubst Du dass die Dateigrösse nicht gelesen werden kann, weil sie noch geöffnet ist?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Prof. Dr. Peter Henning

Da bin ich mir auch nicht sicher - aber vor allem zeigt dieser Auszug, dass Zombies sehr wohl Dateien blockieren können.

Aus dem Bauch heraus: Irgendetwas stimmt nicht mit dem Dateisystem. Operationen auf den Dateien werden nicht abgeschlossen, die Subprozesse hängen und warten.

Spaßeshalber könnte man eine RAMDisk anlegen, den ganzen FHEM-Kram darauf kopieren und die RAMDisk dann über das FHEM-Verzeichnis mounten.

LG

pah

viegener

Ja, das Zombies Dateien/Handles blockieren können kaufe ich

Ob das das Problem auslöst weiss ich noch nicht. Selbst wenn die Datei blockiert ist, müsste ein Zugriff auf die Dateigrösse trotzdem ein Ergebnis liefern (zur Not halt 0). Ich weiss zwar nicht wie -s implementiert ist, aber ein Zugriff auf die Metadaten der Datei (inkl. Grösse) sollte nicht durch den Öffnungsstatus der Datei beeinflusst werden. Der -s wird ja auf den Dateinamen und nicht auf den Filehandle durchgeführt.

Das Dateisystem könnte aber sehr wohl ein Problem haben, trotzdem ist das Verhalten nicht konsistent, denn nach dem Abbruch wird die alte Datei zurückkopiert (!) und nicht verschoben und dann scheint sie ja wieder vorhanden zu sein.

Sehr mysteriös  ???

Achson: @Steffen: Gibt es Einträge im syslog?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Steffen

Hallo,

Ich habe gerade geschaut aber nichts auffälliges finden können.

Da man den Fehler wohl ohne weiteres nicht so leicht finden wird, werde ich wohl das ganze nochmal neu aufsetzten,
vielleicht hat sich ja irgendwo ein Fehler eingeschlichen den ich nicht bemerkt habe!

Trotzdem vielen dank nochmal für eure Hilfe und Geduld...

Mfg Steffen

Wernieman

Also .. wir haben jetzt hier 2 Leute, die Zombiprozesse haben .... wir sollten debuggen, WARUM. Dieses ist schließlich nicht normal und darf e auch nicht werden.

Ich vermute, das es nicht direkt an den zombies liegt, sondern das die Ursache für die Zombies = der Ursache für das "Nichtschreiben" ist. Darf ich mal nach der perl-version fragen?
perl -v

P.S.
Die Aussage: "Schadet nicht, Stört mich nicht" ist so nicht gans richtig. Es ist eben KEIN Normales Systemverhalten und so etwas sollte man immer nachgehen. Nicht ohne Grund heißen diese Prozesse "Zombies" und kein "richtiger" Admin möchte diese haben ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

automatisierer

Mit "schadet nicht, Stört mich nicht" meinte ich eher den aktuellen Zustand meines Systems. Es gibt halt keine Auffälligkeiten, alles funktioniert so wie es soll. Das das mit den Zombies nicht normal ist, leucht mir wohl ein.


bei mir läuft Perl v5.14.2


Gruß
Ingo

Wernieman

Du hast geschrieben, nur wenn Du das "ping" Modul verwendest, hast Du Zombies?

Kannst Du mir (zum Testen) Deine Definition geben?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

automatisierer

Richtig, wenn ich das PRESENCE Modul verwende, entstehen die bei einem Neustart.
Hab mal fix einen gemacht...

Die Meldungen im FHEM Log:


2016.05.12 12:59:23 1: Timeout for PRESENCE_DoLocalPingScan reached, terminated process 25824
2016.05.12 12:59:23 1: Timeout for PRESENCE_DoLocalPingScan reached, terminated process 25822
2016.05.12 12:59:23 1: Timeout for PRESENCE_DoLocalPingScan reached, terminated process 25820
2016.05.12 12:59:23 1: Timeout for PRESENCE_DoLocalPingScan reached, terminated process 25818
2016.05.12 12:59:23 1: Timeout for PRESENCE_DoLocalPingScan reached, terminated process 25816
2016.05.12 12:59:23 1: Timeout for PRESENCE_DoLocalPingScan reached, terminated process 25815
2016.05.12 12:59:22 1: Timeout for PRESENCE_DoLocalPingScan reached, terminated process 25812
2016.05.12 12:59:22 1: Timeout for PRESENCE_DoLocalPingScan reached, terminated process 25811
2016.05.12 12:59:15 1: Timeout for PRESENCE_DoLocalPingScan reached, terminated process 25809
2016.05.12 12:59:14 1: Timeout for PRESENCE_DoLocalPingScan reached, terminated process 25807
2016.05.12 12:59:14 1: Timeout for PRESENCE_DoLocalPingScan reached, terminated process 25805
2016.05.12 12:59:14 1: Timeout for PRESENCE_DoLocalPingScan reached, terminated process 25803


hier einmal 'ps aux|grep fhem':

fhem     25779 17.9  5.1  51076 45692 ?        S    12:58   0:43 /usr/bin/perl fhem.pl fhem.cfg
fhem     25803  0.0  0.0      0     0 ?        Z    12:58   0:00 [perl] <defunct>
fhem     25805  0.0  0.0      0     0 ?        Z    12:58   0:00 [perl] <defunct>
fhem     25807  0.0  0.0      0     0 ?        Z    12:58   0:00 [perl] <defunct>
fhem     25809  0.0  0.0      0     0 ?        Z    12:58   0:00 [perl] <defunct>
fhem     25811  0.0  0.0      0     0 ?        Z    12:58   0:00 [perl] <defunct>
fhem     25812  0.0  0.0      0     0 ?        Z    12:58   0:00 [perl] <defunct>
fhem     25815  0.0  0.0      0     0 ?        Z    12:58   0:00 [perl] <defunct>
fhem     25816  0.0  0.0      0     0 ?        Z    12:58   0:00 [perl] <defunct>
fhem     25818  0.0  0.0      0     0 ?        Z    12:58   0:00 [perl] <defunct>
fhem     25820  0.0  0.0      0     0 ?        Z    12:58   0:00 [perl] <defunct>
fhem     25822  0.0  0.0      0     0 ?        Z    12:58   0:00 [perl] <defunct>
fhem     25824  0.0  0.0      0     0 ?        Z    12:58   0:00 [perl] <defunct>
bananapi 25924  0.0  0.0   3612   864 pts/0    S+   13:02   0:00 grep --color=auto fhem


und jetzt das list von einem PRESENCE Device:

Internals:
   ADDRESS    192.168.171.109
   CHANGED
   DEF        lan-ping 192.168.171.109 300 300
   MODE       lan-ping
   NAME       PC_Kopierer
   NR         1467
   STATE      present
   TIMEOUT_NORMAL 300
   TIMEOUT_PRESENT 300
   TYPE       PRESENCE
   Readings:
     2016-05-12 12:58:45   presence        present
     2016-05-12 12:58:45   state           present
   Helper:
     DISABLED   0
     Running_pid:
       abortFn    PRESENCE_ProcessAbortedScan
       finishFn   PRESENCE_ProcessLocalScan
       fn         PRESENCE_DoLocalPingScan
       pid        25950
       Abortarg:
Attributes:
   disable    0
   event-on-change-reading .*
   room       _PC


Gruß
Ingo

Wernieman

Kannst Du bitte einen neuen Thread aufmachen, ich glaube, wir missbrauchen gerade diesen ...

Auf jedem Falle werden bei Dir die extern gestarteten "pings" nicht ordentlich beendet ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

automatisierer

ähm... neuer Thread - ja, aber später...

und die Ping Prozesse werden nur währen des FHEM startvorgangs nicht richtig bendet. Ansonsten bleibt der LOG bei mir leer...

Wernieman

P.S. hast Du nur diesen einen, oder mehrere lan-pings?
Ist das gerät i der Zeit "da", also anpingbar?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html