NEWS
[Gelöst] Script bringt iobroker zum Absturz
-
Frage an die Crowd: Dieser script bringt meinen ioBroker nach einigen Stunden zum Absturz. Besser gesagt im Hintergrund läuft zwar noch etwas aber ich kann weder mit editor, noch VIS noch per ssh auf den Server zugreifen. Mein Gefühl sagt mir, dass hier irgendetwas überläuft. Mein weiteres Gefühl sagt mir, dass es die allerletzte Anweisung ist, die ich nur eingefügt habe, damit mir Alexa ansagt, dass der Script gestartet wurde. Ich glaube aber, dass diese Anweisung irgendwann einen Speicherüberlauf produziert und dadurch alle Zugriffe blockiert. Meine Frage liege ich da richtig oder hat der Script noch ein anderes Problem? Danke für Eure Mühe sich das anzusehen!
11801_script_error.jpg
11801_script_error_js.jpg -
Was sagt denn das log so?
Was sagt top ander kommandozeile?
Was sagt /var/log/syslog? Steht da was mit oom drin?
Welche nodejs Version?
Gesendet vom Handy …
-
Also in syslog ist kein oom zu finden. Im ioBroker bekam ich haufenweise Meldungen wie:
2019-01-12 01:56:36.640 - error: hue.0 Timeout for polling light Philips_hue.Vorzimmer_hinten
2019-01-12 01:56:46.643 - error: hue.0 Timeout for polling light Philips_hue.Fensterlampe
2019-01-12 01:56:49.925 - error: hue.0 Error: connect EHOSTUNREACH 192.168.0.227:80
2019-01-12 01:56:49.925 - error: hue.0 Cannot get result for lightStatus7
2019-01-12 01:56:53.045 - error: hue.0 Error: connect EHOSTUNREACH 192.168.0.227:80
2019-01-12 01:56:53.045 - error: hue.0 Cannot get result for lightStatus1
2019-01-12 01:56:56.165 - error: hue.0 Error: connect EHOSTUNREACH 192.168.0.227:80
2019-01-12 01:56:56.165 - error: hue.0 Cannot get result for lightStatus2
2019-01-12 01:56:59.284 - error: hue.0 Error: connect EHOSTUNREACH 192.168.0.227:80
2019-01-12 01:56:59.285 - error: hue.0 Cannot get result for lightStatus3
oder
2019-01-12 02:01:52.248 - error: alexa2.0 uncaught exception: Cannot read property 'password' of undefined
2019-01-12 02:01:52.249 - error: alexa2.0 TypeError: Cannot read property 'password' of undefined
oder auch:
2019-01-12 02:03:47.836 - info: iot.0 Connection changed: disconnect
2019-01-12 02:03:47.837 - info: iot.0 Connection lost
2019-01-12 02:04:18.395 - error: alexa2.0 Error: getaddrinfo EAI_AGAIN alexa.amazon.de:443
Es scheint als ob mein Netz plötzlich nicht mehr funktionierte. Aber am Router war alles OK. Ich hatte auch das Gefühl, dass der Server weiterlief er war aber nicht mehr für mich erreichbar.
Als ich das Script gestoppt habe, lief der Server wieder sauber!
Ach ja:
Plattform: linux
Die Architektur: arm
CPUs: 4
Geschwindigkeit: 1400 MHz
Modell: ARMv7 Processor rev 4 (v7l)
RAM: 970.8 MB
System uptime: 08:31:45
Node.js: v8.12.0
NPM: 6.4.1
Adapter zählen: 216
-
Hi,
speak Durchgelaufen wird bei jedem Durchlauf des Scriptes ausgeführt und zwar alle 2 Sekunden.
Egal ob in den Falls Objekten was passiert.
Das war glaube ich nicht dein Ansatz.
Definiere Durchgelaufen.
Etwa so, wenn Falls Objekt 1 oder Falls Objekt 2 oder Falls Objekt 3 wurde Durchlaufen
dann speak.
oder, wenn Falls Objekt 1 und Falls Objekt 2 und Falls Objekt 3 wurde Durchlaufen
dann speak.
Überlege dir wann speak ausgeführt werden soll.
Klar bei Durchgelaufen, aber was ist Durchgelaufen für dich ?
Wenn ein Falls Objekt durchlaufen wird egal welches oder
wenn ein bestimmtes Falls Objekt durchlaufen wird oder
wenn alle Falls Objekte durchlaufen werden usw.
Lösungsvorschlag mittels Variable anbei, siehe Bild.
5230_var_speak.jpg
5230_var_speak_v3.jpg
5230_speak_soll_v1.jpg -
Danke für Deine Mühe. Ja das scheint das Problem gewesen zu sein. Durchgelaufen wurde eigentlich dauernd aufgerufen. Es hatte keine Bedingung oder auch Trigger.