NEWS
js-controller 4.0 jetzt im BETA/LATEST!
-
@dolomiti bei mir war es mongodb,, die zur gleichen Ausgabe führte
-
@feuersturm sagte in js-controller 4.0 jetzt im BETA/LATEST!:
folgende Ausgabe erhalten:
Wäre da nicht nach dem iob stop ein iob update angebracht gewesen?
-
@dolomiti Das hat nichts mit dem Controller zu tun. Das liegt an Nodejs 14 und scheinbar einer "alten" version von node-red der eine buggy mongodb version enthalten hat und diese verursacht diese Fejhler. ALso bitte node-red aktualisieren
-
@jb_sullivan Diese Meldung kommt vom Admin wenn nicht innerhalb einer definierten Wartezeit Daten kommen. Ja das passiert ggf wenn gerade viele Adapter starten und somit das System unter Last steht.
-
@crunchip sagte in js-controller 4.0 jetzt im BETA/LATEST!:
@feuersturm sagte in js-controller 4.0 jetzt im BETA/LATEST!:
folgende Ausgabe erhalten:
Wäre da nicht nach dem iob stop ein iob update angebracht gewesen?
iob update wurde vor dem iob stop ausgeführt.
-
@feuersturm Sieht alles korrekt aus. Sind die üblichen Compile Warnungen und die oben beschriebenen "einmaligen Not supported "Meldungen. Alles so wie es soll
-
@apollon77 Habe eben unter 4.0.10 5 Adapter aktualisiert (shelly von 5.1.3 auf 5.2.0, text2command von 2.1.2 auf 2.1.6, socketio von 4.1.2 auf 4.1.4, ws von 1.1.4 auf 1.1.6, web von 4.1.4 auf 4.1.5). Als letztes den web und dann kam mal wieder der OOM Killer obwohl die VM nun 6GB hat und nicht über 5 GB belegt hatte:
Also hab ich ein iob stop gemacht und danach ein iob start. Dann kam es zu dem Fall dass Instanzen loopten:
2022-02-17 11:19:11.550 - error: admin.0 (358368) admin.0 already running 2022-02-17 11:19:11.551 - warn: admin.0 (358368) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2022-02-17 11:19:12.152 - error: host.iobroker instance system.adapter.admin.0 terminated with code 7 (ADAPTER_ALREADY_RUNNING) 2022-02-17 11:19:15.139 - error: email.0 (358380) email.0 already running 2022-02-17 11:19:15.140 - warn: email.0 (358380) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2022-02-17 11:19:15.739 - error: host.iobroker instance system.adapter.email.0 terminated with code 7 (ADAPTER_ALREADY_RUNNING) 2022-02-17 11:19:19.206 - error: history.0 (358393) history.0 already running 2022-02-17 11:19:19.208 - warn: history.0 (358393) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2022-02-17 11:19:19.803 - error: host.iobroker instance system.adapter.history.0 terminated with code 7 (ADAPTER_ALREADY_RUNNING) 2022-02-17 11:19:24.000 - error: javascript.0 (358405) javascript.0 already running 2022-02-17 11:19:24.002 - warn: javascript.0 (358405) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2022-02-17 11:19:24.607 - error: host.iobroker instance system.adapter.javascript.0 terminated with code 7 (ADAPTER_ALREADY_RUNNING) 2022-02-17 11:19:27.671 - error: telegram.0 (358417) telegram.0 already running 2022-02-17 11:19:27.673 - warn: telegram.0 (358417) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2022-02-17 11:19:28.277 - error: host.iobroker instance system.adapter.telegram.0 terminated with code 7 (ADAPTER_ALREADY_RUNNING) 2022-02-17 11:19:31.374 - error: influxdb.0 (358432) influxdb.0 already running 2022-02-17 11:19:31.375 - warn: influxdb.0 (358432) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2022-02-17 11:19:31.974 - error: host.iobroker instance system.adapter.influxdb.0 terminated with code 7 (ADAPTER_ALREADY_RUNNING) 2022-02-17 11:19:35.248 - error: alexa2.0 (358444) alexa2.0 already running 2022-02-17 11:19:35.249 - warn: alexa2.0 (358444) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2022-02-17 11:19:35.848 - error: host.iobroker instance system.adapter.alexa2.0 terminated with code 7 (ADAPTER_ALREADY_RUNNING) 2022-02-17 11:19:39.215 - error: alexa2.1 (358457) alexa2.1 already running 2022-02-17 11:19:39.217 - warn: alexa2.1 (358457) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2022-02-17 11:19:39.810 - error: host.iobroker instance system.adapter.alexa2.1 terminated with code 7 (ADAPTER_ALREADY_RUNNING) 2022-02-17 11:19:43.691 - info: admin.0 (358468) starting. Version 5.3.0 in /opt/iobroker/node_modules/iobroker.admin, node: v14.19.0, js-controller: 4.0.10 2022-02-17 11:19:43.783 - info: admin.0 (358468) requesting all states 2022-02-17 11:19:43.784 - info: admin.0 (358468) requesting all objects 2022-02-17 11:19:44.134 - info: admin.0 (358468) Request actual repository... 2022-02-17 11:19:45.330 - info: admin.0 (358468) received all objects 2022-02-17 11:19:45.538 - info: admin.0 (358468) https server listening on port 8081 2022-02-17 11:19:45.539 - info: admin.0 (358468) Use link "https://localhost:8081" to configure. 2022-02-17 11:19:46.828 - info: admin.0 (358468) Repository received successfully. 2022-02-17 11:19:47.323 - info: email.0 (358500) starting. Version 1.0.10 in /opt/iobroker/node_modules/iobroker.email, node: v14.19.0, js-controller: 4.0.10 2022-02-17 11:19:47.838 - error: mihome-vacuum.0 (358511) mihome-vacuum.0 already running 2022-02-17 11:19:47.839 - warn: mihome-vacuum.0 (358511) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2022-02-17 11:19:48.428 - error: host.iobroker instance system.adapter.mihome-vacuum.0 terminated with code 7 (ADAPTER_ALREADY_RUNNING) 2022-02-17 11:19:48.971 - error: admin.0 (358468) error 2022-02-17 11:19:51.615 - error: modbus.0 (358539) modbus.0 already running 2022-02-17 11:19:51.617 - warn: modbus.0 (358539) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2022-02-17 11:19:52.210 - error: host.iobroker instance system.adapter.modbus.0 terminated with code 7 (ADAPTER_ALREADY_RUNNING) 2022-02-17 11:19:55.302 - error: mqtt.0 (358555) mqtt.0 already running 2022-02-17 11:19:55.303 - warn: mqtt.0 (358555) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2022-02-17 11:19:55.938 - error: host.iobroker instance system.adapter.mqtt.0 terminated with code 7 (ADAPTER_ALREADY_RUNNING)
Also noch mal iob stop, mit ps auxww | grep io geschaut dass nichts mehr läuft und nochmal iob start.
Nun läuft er wieder. Aber dass mit dem OOM Killer seit js-controller 4.x ist schon "interessant". -
@diginix Sehr interessant. Also das "Already running" ist einfach (und da haben Sie auch nicht geloopt!) - Der Restart passiert so schnell das die instanzen noch auf "alive" stehen, das erkennt der startende adapter und sagt "neee, da läuft schon einer". Dann stoppen Sie sich mit Fehler 7, der Controller räumt das auf bzw durch die kurze verzögerung bis zum nächsten Restart ist dann alles ok.
Also wenn ich jetzt frech sein darf frage ich dich ob DU es nachstellen kannst und wenn du es "verlässlich" hinbekommst dann wäre mal eine Idee zurück auf fileDB zu gehen um auszuschliessen das es was mit jsonl zu tun hat
-
@apollon77 sagte in js-controller 4.0 jetzt im BETA/LATEST!:
Die Fehler haben mit Viel-CPU-Problemen nichts zu tun!! Das ist ok so, wundert mich
ging ja nicht um die CPU, sondern die Frage der HOST ERROR MELDUNGEN, bei einem
ìob stop
hier nochmal aus dem daemon.logFeb 16 11:36:06 IoBroker systemd[1]: Stopping ioBroker Server... Feb 16 11:36:08 IoBroker bash[14308]: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: Feb 16 11:36:08 IoBroker bash[14308]: Error: DB closed Feb 16 11:36:08 IoBroker bash[14308]: at close (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:184:25) Feb 16 11:36:08 IoBroker bash[14308]: at Socket.<anonymous> (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:151:20) Feb 16 11:36:08 IoBroker bash[14308]: at Object.onceWrapper (events.js:520:26) Feb 16 11:36:08 IoBroker bash[14308]: at Socket.emit (events.js:400:28) Feb 16 11:36:08 IoBroker bash[14308]: at Socket.emit (domain.js:475:12) Feb 16 11:36:08 IoBroker bash[14308]: at TCP.<anonymous> (net.js:686:12) Feb 16 11:36:08 IoBroker bash[14308]: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: Feb 16 11:36:08 IoBroker bash[14308]: Error: DB closed Feb 16 11:36:08 IoBroker bash[14308]: at Redis.sendCommand (/opt/iobroker/node_modules/ioredis/built/redis/index.js:636:24) Feb 16 11:36:08 IoBroker bash[14308]: at Redis.get (/opt/iobroker/node_modules/ioredis/built/commander.js:122:25) Feb 16 11:36:08 IoBroker bash[14308]: at StateRedisClient.setState (/opt/iobroker/node_modules/@iobroker/db-states-redis/lib/states/statesInRedisClient.js:657:40) Feb 16 11:36:08 IoBroker bash[14308]: at Adapter.setState (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:6485:35) Feb 16 11:36:14 IoBroker bash[14308]: ================================== > LOG REDIRECT system.adapter.admin.0 => false [Process stopped] Feb 16 11:36:15 IoBroker bash[14308]: ================================== > LOG REDIRECT system.adapter.admin.0 => false [system.adapter.admin.0.logging] Feb 16 11:36:15 IoBroker bash[14308]: ================================== > LOG REDIRECT system.adapter.javascript.0 => false [Process stopped] Feb 16 11:36:15 IoBroker bash[14308]: ================================== > LOG REDIRECT system.adapter.javascript.0 => false [system.adapter.javascript.0.logging] Feb 16 11:36:16 IoBroker bash[14308]: ================================== > LOG REDIRECT system.adapter.iot.0 => false [Process stopped] Feb 16 11:36:16 IoBroker bash[14308]: ================================== > LOG REDIRECT system.adapter.logparser.0 => false [Process stopped] Feb 16 11:36:16 IoBroker bash[14308]: ================================== > LOG REDIRECT system.adapter.iot.0 => false [system.adapter.iot.0.logging] Feb 16 11:36:16 IoBroker bash[14308]: ================================== > LOG REDIRECT system.adapter.jarvis.0 => false [Process stopped] Feb 16 11:36:17 IoBroker bash[14308]: ================================== > LOG REDIRECT system.adapter.seq.0 => false [Process stopped] Feb 16 11:36:17 IoBroker bash[14308]: ================================== > LOG REDIRECT system.adapter.logparser.0 => false [system.adapter.logparser.0.logging] Feb 16 11:36:17 IoBroker bash[14308]: ================================== > LOG REDIRECT system.adapter.jarvis.0 => false [system.adapter.jarvis.0.logging] Feb 16 11:36:17 IoBroker bash[14308]: ================================== > LOG REDIRECT system.adapter.seq.0 => false [system.adapter.seq.0.logging] Feb 16 11:36:20 IoBroker systemd[1]: iobroker.service: Main process exited, code=exited, status=1/FAILURE Feb 16 11:36:20 IoBroker systemd[1]: iobroker.service: Failed with result 'exit-code'. Feb 16 11:36:20 IoBroker systemd[1]: Stopped ioBroker Server.
-
@crunchip Nutzt Du adapter im Compact mode und da in gruppe 0?
EDIT: Ok vergiss die Frage: Diese Logzeilen sind die die der Shelly adapter ausgespuckt hatte nur nochmal "wiederholt"
-
@apollon77 sagte in js-controller 4.0 jetzt im BETA/LATEST!:
@diginix Sehr interessant. Also das "Already running" ist einfach (und da haben Sie auch nicht geloopt!) - Der Restart passiert so schnell das die instanzen noch auf "alive" stehen, das erkennt der startende adapter und sagt "neee, da läuft schon einer". Dann stoppen Sie sich mit Fehler 7, der Controller räumt das auf bzw durch die kurze verzögerung bis zum nächsten Restart ist dann alles ok.
Wenn ich da nicht manuell eingreife geht das munter so weiter. Zumindest war das meine Beobachtung. Da man schnell wieder ein lauffähiges System möchte, bricht man halt mit iob stop alles ab. Ob sich das von allein beruhig hätte, bekommen wir so nicht raus. Eigentlich interessiert mich das OOM Killer "Problem" mehr. Wenn genug da ist, sollte kein Update diesen triggern. Mit js-controller 3.x und file db hatte ich das nie und da war der RAM sogar 2 GG weniger bei identischer Adapter Anzahl.
Also wenn ich jetzt frech sein darf frage ich dich ob DU es nachstellen kannst und wenn du es "verlässlich" hinbekommst dann wäre mal eine Idee zurück auf fileDB zu gehen um auszuschliessen das es was mit jsonl zu tun hat
Verständlich, aber selbst mit Proxmox und VMs ist das keine einfache Aufgabe. Selbst wenn ich die VM klone und darin alles auf file db zurück stelle, kann ich nicht alle Adapter laufen lassen, weil zB mqtt clients nicht an 2 Brokern hängen können. Also liefe im Klon nur ein kleiner Teil der Adapter um auch das Netzwerk nicht zu überlasten. Ob das dann noch repräsentativ wäre, weiß ich nicht. Ich beobachte vorerst mal unverändert weiter.
-
@diginix Ich habe in meinen testsyteme auch rumexperimentiert und bei mir ist RAM technisch alles stabil ...
Die Preisfrage ist ja Wo das RAM verbraucht wird ... (und nur die Grafik darfst nicht ansehen weil Linux sich an sich RAM krallt wenns da ist und freigibt wenn nötig. also "zählt nur" free -m
-
@diginix sagte in js-controller 4.0 jetzt im BETA/LATEST!:
Wenn ich da nicht manuell eingreife geht das munter so weiter. Zumindest war das meine Beobachtung.
sollte maxmial 30s so sein (wenn mehr als einmal)...
-
@apollon77 Vielen Dank. Die kleine Änderung am Code hat mir sehr geholfen.
-
@diginix Kannst du mal mitschneiden, was die einzelnen ioBroker-Prozesse an RAM verbrauchen? Z.B. durch History-Aufzeichnung von
system.adapter.<adaptername>.0.memRss
undsystem.host.<hostname>.memRss
Ebenfalls interessant wäre (einmalig) Anzahl Objekte, Anzahl States und input/output count der Adapter.
-
@alcalzone memRss für alle Instanzen+Host ist nun in History aktiviert.
Objekte: 17720, Zustände: 15859
Alle in/out aller 47 Instanzen ging als Screenshot am einfachsten:
https://www.dropbox.com/s/ceafuk51rhv0om2/2022-02-17_in_out_adapter.png?dl=0Im regulären Betrieb ist da aber auch nichts auffällig mMn. Nur bei den js-controller Updates hatte ich zuletzt einmal ein OOM Problem und heute nach Update von 5 Adaptern.
-
@diginix sagte in js-controller 4.0 jetzt im BETA/LATEST!:
le in/out aller 47 Instanzen ging als Screenshot am einfachsten:
Neee, auch das gibts als states in system.adapter/host.NAME.*
-
@apollon77 Davon ist doch der Screenshot super vorgefiltert
Aber selbst das lies sich nicht als html, text aus Admin raus kopieren und ich copy/paste keine 94 Werte plus Namen...
Wenn ich @AlCalzone richtig verstanden habe, wollte er es doch nur einmalig und das wahrs. menschlich lesbar aber nicht zwingend maschinenlesbar... -
@diginix Naja, einmalig ist einmalig ... mit Historisierung sieht man wie es sich generell verhält ... kann ja sein das der Blick auf das "JETZT" sehr irreführend ist
-
@apollon77 Ich habe nur gemacht was @AlCalzone geschrieben hat.
Dachte er will sich erstmal ein Bild von meinem System verschaffen.
RAM wird nun mit Vorhaltezeit von 1 Monat dauerhaft mirgemeiselt. Das kann ich für in/out genau so aktivieren.Edit:
ab sofort wird für 30 Tage rückwirkend auf der HDD persistiert:system.adapter/host.*.*.memRss system.adapter/host.*.*.inputCount system.adapter/host.*.*.outputCount