NEWS
Javascript Fehler mit unleserlichem Log
-
Moin,
ich habe seit kurzem Probleme mit meinem JS. Ich habe bereits alle Skripe gestoppt und neu gestartet um zu gucken ob es an einem der Skripte liegt, aber kein Skript scheint den Fehler zu verursachen.
host.iobroker 2022-11-26 22:52:06.526 info Restart adapter system.adapter.javascript.0 because enabled host.iobroker 2022-11-26 22:52:06.525 error instance system.adapter.javascript.0 terminated with code 1 (JS_CONTROLLER_STOPPED) host.iobroker 2022-11-26 22:52:06.525 error Caught by controller[0]: at processImmediate (node:internal/timers:468:21) host.iobroker 2022-11-26 22:52:06.525 error Caught by controller[0]: at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:7439:39) host.iobroker 2022-11-26 22:52:06.524 error Caught by controller[0]: at Object.formatAliasValue (/opt/iobroker/node_modules/@iobroker/js-controller-common/lib/common/tools.js:2479:19) javascript.0 2022-11-26 22:52:06.173 error An error happened which is most likely from one of your scripts, but the originating script could not be detected. javascript.0 2022-11-26 22:52:05.529 info received all objects javascript.0 2022-11-26 22:52:02.506 info requesting all objects javascript.0 2022-11-26 22:52:02.504 info requesting all states javascript.0 2022-11-26 22:52:00.135 info starting. Version 6.0.3 in opt/iobroker/node_modules/iobroker.javascript, node: v16.18.1, js-controller: 4.0.23
-
@joshude Ich habe den "Binary Kram" entfernt. Bitte das Filesystem der SD Kartenprüfen ... da ist scheinbar was im argen!
-
Danke, ich hab meinen iobroker seit eh und je auf ner SSD laufen und es gab auch keinen Stromausfall etc. Gibts da ne schicke Möglichkeit das Dateisystem zu prüfen?
Ich habe gerade javascript einmal komplett neu installiert, bekomme aber weiterhin den "Binary Kram" angezeigt. Alles andere läuft problemlos.
which nodejs node npm && nodejs -v && node -v && npm -v && sudo apt update && sudo apt update && apt policy nodejs /usr/bin/nodejs /usr/bin/node /usr/bin/npm v16.18.1 v16.18.1 8.19.2 OK:1 http://phoscon.de/apt/deconz buster InRelease Holen:2 http://raspbian.raspberrypi.org/raspbian buster InRelease [15,0 kB] OK:3 https://deb.nodesource.com/node_14.x bullseye InRelease OK:4 https://repos.influxdata.com/debian buster InRelease OK:5 https://deb.nodesource.com/node_16.x bullseye InRelease Holen:6 http://archive.raspberrypi.org/debian buster InRelease [32,6 kB] Holen:7 https://archive.raspbian.org/raspbian buster InRelease [15,0 kB] Holen:8 http://archive.raspberrypi.org/debian buster/main armhf Packages [392 kB] Es wurden 454 kB in 2 s geholt (212 kB/s). Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Alle Pakete sind aktuell. OK:1 http://phoscon.de/apt/deconz buster InRelease OK:2 http://raspbian.raspberrypi.org/raspbian buster InRelease OK:3 https://repos.influxdata.com/debian buster InRelease OK:4 http://archive.raspberrypi.org/debian buster InRelease OK:5 https://deb.nodesource.com/node_14.x bullseye InRelease OK:6 https://archive.raspbian.org/raspbian buster InRelease OK:7 https://deb.nodesource.com/node_16.x bullseye InRelease Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Alle Pakete sind aktuell. nodejs: Installiert: 16.18.1-deb-1nodesource1 Installationskandidat: 16.18.1-deb-1nodesource1 Versionstabelle: *** 16.18.1-deb-1nodesource1 500 500 https://deb.nodesource.com/node_16.x bullseye/main armhf Packages 100 /var/lib/dpkg/status 14.21.1-deb-1nodesource1 500 500 https://deb.nodesource.com/node_14.x bullseye/main armhf Packages 10.24.0~dfsg-1~deb10u2 500 500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages 500 https://archive.raspbian.org/raspbian buster/main armhf Packages
€: Was mir noch auffiel:
Error: Cannot create property 'val' on string
Allerdings habe ich gerade mal sämtliche Skripte gestoppt. Die Fehler kommen weiterhin.
Laufen irgendwie noch was im Hintergrund, was den js-controller in dieser Art nutzt wie die Skripte in dem "Skripte"-Tab?
Wirkt für mich so, als würde noch ein Skript irgendwo laufen, welches korrupt ist. -
manchmal hilft das stoppen der scripte allein nicht - dann musst du auch die javascriptinstanz neustarten - dann sollten keine fehler mehr kommen
anschliessend könntest du die scripte wieder blockweise starten und schauen, wann der fehler wieder kommt
-
Was mir noch auffällt: Deine Repos sind falsch.
Und Buster ist tot, installier Bullseye. -
@liv-in-sky said in Javascript Fehler mit unleserlichem Log:
manchmal hilft das stoppen der scripte allein nicht - dann musst du auch die javascriptinstanz neustarten - dann sollten keine fehler mehr kommen
Leider nein, da die JS-Instanz sowieso mit jedem Fehler neustartet, also in einer bootloop hängt solange ich die Instanz nicht manuell stoppe. Es laufen daher auch keinerlei Skripte momentan, sprich vieles an Automatisierung hier zuhause ist gerade nicht am Laufen, was natürlich ärgerlich ist.
@thomas-braun said in Javascript Fehler mit unleserlichem Log:
Was mir noch auffällt: Deine Repos sind falsch.
Und Buster ist tot, installier Bullseye.Danke, Upgrade auf Bullseye gerade spontan angestoßen. Wie müssen die Repos richtig lauten, wenn sie falsch sind? Weiß nicht, wie die da rein gekommen sind, vermutlich irgnedwann mal was gebastelt.
Danke für die Hilfe soweit!
€: Weite Sache, die mir eben im Log auffiel:
host.iobroker 2022-11-28 10:12:18.063 error Caught by controller[0]: Failed to load definitions for node: Error: ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.javascript/node_modules/@types/node/clientreport/index.d.ts'
-
@joshude sagte in Javascript Fehler mit unleserlichem Log:
Gibts da ne schicke Möglichkeit das Dateisystem zu prüfen?
https://www.thomas-krenn.com/de/wiki/FSCK_Best_Practices#FSCK_beim_Boot_erzwingen sowas vllt?
-
Das hilft leider nicht. Es scheint auch wirklich nur JS zu betreffen.
Ich würde gern darauf verzichten den raspberry auf dem das läuft komplett neu zu installieren, da auf dem Pi unglücklicherweise andere Dinge laufen.
Gibts noch irgendwelche Wege das "grundlegende" iobroker-System neu zu installieren? Also node-js, npm, wie es alles heißt. -
@joshude sagte in Javascript Fehler mit unleserlichem Log:
Ich würde gern darauf verzichten den raspberry auf dem das läuft komplett neu zu installieren
Kannst du nicht, 'Buster' hat das End of Life erreicht. Geh auf ein lebendiges Release.
-
@thomas-braun said in Javascript Fehler mit unleserlichem Log:
Kannst du nicht, 'Buster' hat das End of Life erreicht. Geh auf ein lebendiges Release.
Hm, ich hab mir vorhin ne Anleitung rausgesucht und von Buster auf Bullseye geupdated. Ist das kein gängiger Weg?
-
Kommt auf die Anleitung an.
-
-
Bis auf die Installation der out-of-tree Firmware sieht das ganz okay aus.
-
@joshude said in Javascript Fehler mit unleserlichem Log:
Gibts noch irgendwelche Wege das "grundlegende" iobroker-System neu zu installieren? Also node-js, npm, wie es alles heißt.
Würde hier gern noch mal Nachhaken
-
@joshude sagte in Javascript Fehler mit unleserlichem Log:
Gibts noch irgendwelche Wege das "grundlegende" iobroker-System neu zu installieren? Also node-js, npm, wie es alles heißt.
Ja, kann man. Was ist jetzt konkret die Frage?
sudo ln -s /usr/bin/node /usr/bin/nodejs &> /dev/null uname -m && test -f /opt/scripts/.docker_config/.thisisdocker && echo "Docker-Installation" || echo "Kein Docker" && type -P nodejs node npm && nodejs -v && node -v && npm -v && iob -v && whoami && groups && echo $XDG_SESSION_TYPE && echo $DESKTOP_SESSION && pwd && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs
sagt?
-
pi@iobroker:~ $ sudo ln -s /usr/bin/node /usr/bin/nodejs &> /dev/null uname -m && test -f /opt/scripts/.docker_config/.thisisdocker && echo "Docker-Installation" || echo "Kein Docker" && type -P nodejs node npm & nodejs -v && node -v && npm -v && iob -v && whoami && groups && echo $XDG_SESSION_TYPE && echo $DESKTOP_SESSION && pwd && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs armv7l Kein Docker /usr/bin/nodejs /usr/bin/node /usr/bin/npm v16.18.1 v16.18.1 8.19.2 4.0.23 pi pi adm dialout cdrom sudo audio video plugdev games users input netdev gpio i2c spi iobroker tty /home/pi OK:1 http://archive.raspberrypi.org/debian buster InRelease OK:2 http://raspbian.raspberrypi.org/raspbian bullseye InRelease OK:3 http://phoscon.de/apt/deconz buster InRelease OK:4 https://deb.nodesource.com/node_14.x bullseye InRelease OK:5 https://repos.influxdata.com/debian buster InRelease OK:6 https://deb.nodesource.com/node_16.x bullseye InRelease OK:7 https://archive.raspbian.org/raspbian bullseye InRelease Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Aktualisierung für 294 Pakete verfügbar. Führen Sie »apt list --upgradable« aus, um sie anzuzeigen. nodejs: Installiert: 16.18.1-deb-1nodesource1 Installationskandidat: 16.18.1-deb-1nodesource1 Versionstabelle: *** 16.18.1-deb-1nodesource1 500 500 https://deb.nodesource.com/node_16.x bullseye/main armhf Packages 100 /var/lib/dpkg/status 14.21.1-deb-1nodesource1 500 500 https://deb.nodesource.com/node_14.x bullseye/main armhf Packages 12.22.12~dfsg-1~deb11u1 500 500 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf Packages 500 https://archive.raspbian.org/raspbian bullseye/main armhf Packages
Die konkrete Frage wäre:
Ich habe ein Backup meiner iobroker-Installation, möchte aber nicht den RaspberryPi an sich neu aufsetzen, sondern maximal den iobroker.
Was ist hier die beste Vorgehensweise. Bisher habe ich für ne Neuinstallation einfach die SD-Karte platt gemacht, das Image neu aufgespielt und dann gebooted und konfiguriert.
Inzwischen laufen andere Dinge mit auf dem Pi (influxdb, nen vpn-client und einiges anders) was ich gerne vermeiden würde neu zu installieren.Ich weiß, dass das Setup wenig optimal ist, aber Stand jetzt ist das nunmal leider so.
Alternativ ginge natürlich auch den Fehler zu finden, mir scheint es irgendwie nur das javascript zu sein, was da hinüber ist. Der iob fix behebt das Problem aber nicht, iobroker.javascript habe ich schon komplett de- und reinstalliert, leider auch ohne Erfolg.
-
@joshude Äääähm,....
so ganz kann ich mir daraus kein wirkliches Bild machen. Da steht in meinen Augen vieles drin was keinen Sinn ergibt.
Der Fixer fixt nur verbogene Rechte, keine Skripte.
Ein Restore eines "Images" (was auch immer das sein soll) ist auch keine Lösung, wenn etwas an der Installation faul ist.
Da hilft nur ein aktuelles Raspberry PI OS lite zu nehmen, ioBroker und das korrekte node mit zugehörigem npm mit dem Einzeiler Installieren, Backup wiederherstellen und gut ist.Ist da jedoch ein Amok laufendes Skript am Werk nutzt es auch nicht den Adapter neu zu installieren!
-
@joshude sagte in Javascript Fehler mit unleserlichem Log:
Aktualisierung für 294 Pakete verfügbar.
Und in den sources.list Dateien ist auch der Wurm drin.
Die Anleitung die du da gegriffen hast hat den Teil 'ThirdParty-Repos' elegant ausgelassen, das knallt dir jetzt auf die Füße.Ist das jetzt ein Bullseye oder ein Buster da bei dir?
lsb_release -a
sagt?
Ein Upgrade geht richtiger so:
https://forum.iobroker.net/topic/47213/upgrade-von-debian-10-buster-auf-11-bullseye
-
@homoran said in Javascript Fehler mit unleserlichem Log:
Ein Restore eines "Images" (was auch immer das sein soll) ist auch keine Lösung, wenn etwas an der Installation faul ist.
Meine letzte Neuinstallation ist etwas her, da hab ich das Image hier genommen:
https://forum.iobroker.net/topic/41520/raspberry-os-lite-image-for-with-iobrokerDa hilft nur ein aktuelles Raspberry PI OS lite zu nehmen, ioBroker und das korrekte node mit zugehörigem npm mit dem Einzeiler Installieren, Backup wiederherstellen und gut ist.
Genau das möchte ich aus den oben genannten Gründen ja vermeiden.
Ist da jedoch ein Amok laufendes Skript am Werk nutzt es auch nicht den Adapter neu zu installieren!
Tja, nur leider wüsste ich nicht welches, da ich im Adapter alle Skripte deaktiviert habe. Irgendwas muss da also abseits Amok laufen, die Logs lesen sich aber so, als wäre es JS.
host.iobroker 2022-11-26 22:52:06.525 error Caught by controller[0]: at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:7439:39) host.iobroker 2022-11-26 22:52:06.524 error Caught by controller[0]: at Object.formatAliasValue (/opt/iobroker/node_modules/@iobroker/js-controller-common/lib/common/tools.js:2479:19)
und
host.iobroker 2022-11-30 17:59:09.630 error Caught by controller[0]: Failed to load definitions for node: Error: ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.javascript/node_modules/@types/node/clientreport/index.d.ts'
@thomas-braun said in Javascript Fehler mit unleserlichem Log:
@joshude sagte in Javascript Fehler mit unleserlichem Log:
Aktualisierung für 294 Pakete verfügbar.
Und in den sources.list Dateien ist auch der Wurm drin.
Die Anleitung die du da gegriffen hast hat den Teil 'ThirdParty-Repos' elegant ausgelassen, das knallt dir jetzt auf die Füße.Wie sollte die im Idealfall aussehen? Ich kann mich nicht erinnern die angefasst zu haben, vielleicht aber damals für nen Upgrade von NodeJS? Muss aber lange her sein.
Ist das jetzt ein Bullseye oder ein Buster da bei dir?
lsb_release -a
sagt?
pi@iobroker:~ $ lsb_release -a No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye
Ein Upgrade geht richtiger so:
https://forum.iobroker.net/topic/47213/upgrade-von-debian-10-buster-auf-11-bullseyeSchade, ich hab nach Buster to bullseye upgrade bei Google gesucht, die Anleitung ist dabei nicht aufgetaucht.
-
Ok, wenn Du jetzt leserliche Fehler bekommst ist das ja cool ... jetzt bitte aber vollständig posten
Da gibts definit v mehr als die 2 Zeilen die Du gepostet hast