NEWS
[gelöst] Fehler und Abbruch bei Neuinstallation in Docker
-
Hallo,
heute hat NodeRed nach Erweiterungen und Anpassungen in NodeRed und iobroker plötzlich die Verbindung zum Server verloren. NodeRed ist seit über 12 Monaten mit einer umfangreichen Anwendung (Shelly, ZigBee, Modbus, etc.) störungsfrei gelaufen.
Trotz vieler Versuche (Neustart NodeRed, Neustart iobroker, Neustart Docker) hat NodeRed die Verbindung zu Server nur noch zum Teil gefunden. Man kann sagen, dass die Hälfte der Variablen gefunden wurden.Es kam folgende Fehlermeldung im Log:
TypeError: Cannot read private member from an object whose class did not declare it at __classPrivateFieldGet (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/build/lib/adapter/adapter.js:27:94) at getObject (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/build/lib/adapter/adapter.js:2498:14) at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.node-red/nodes/ioBroker.js:722:21) at process.processImmediate (node:internal/timers:478:21)
Das Einspielen eines lauffähigen NodeRed backups in iobroker hat keine Besserung gebracht.
Dann wurde ein iobroker Backup angestoßen, mit dem Ergebnis, dass nichts mehr ging.
Im Docker hat wurde iobroker immer wieder gestartet und unerwartet gestoppt und dann wieder gestartet und so weiter (automatischer Anlauf).
Dieser Vorgang wurde im Container-Manger der Synology zwangsweise abgebrochen und der Container gelöscht.
Da alle Backups vorhanden sind, sollte eine vollständige Neuinstallation eines neuen und sauberen Containers im Container-Manager einer Synology erfolgen.Aber die Installation des Containers bricht immer wieder ab mit der Fehlermeldung:
There is data detected in /opt/iobroker but it looks like it is no instance of ioBroker! Please check/ recreate mounted folder or volume and try again. This Script will exit now.
Woran liegt das?
Was kann getan werden, damit ein neuer Container unter dem gleichen Namen angelegt werden kann?Grüße
-
@dukle sagte in Fehler und Abbruch bei Neuinstallation in Docker-Umgebung:
There is data detected in /opt/iobroker but it looks like it is no instance of ioBroker!
Trage in der ENV ein
DEBUG = true
Starte den Container neu ,
dann poste hier das Log dazuich vermute du hast dem neuen Container einen anderen Namen gegeben .. deshalb diese Meldung !
Was kann getan werden, damit ein neuer Container unter dem gleichen Namen angelegt werden kann?
alten Container löschen .. "ist ein Wegwerfprodukt "
Ein Mount hast du ja ( Außerhalb des Containers ) .. und alle einstellung gleich machen ! -
@glasfaser sagte in Fehler und Abbruch bei Neuinstallation in Docker-Umgebung:
Trage in der ENV ein
Wo trage ich das ein? Wie gesagt, Dockerumgebung auf Synology
@glasfaser sagte in Fehler und Abbruch bei Neuinstallation in Docker-Umgebung:
ich vermute du hast dem neuen Container einen anderen Namen gegeben .. deshalb diese Meldung !
Namen habe ich mehrfach überprüft, ist identisch wie der alte Namen!
-
Container stoppen , dann Details ... Einstellungen ... Umgebung
-
@glasfaser sagte in Fehler und Abbruch bei Neuinstallation in Docker-Umgebung:
Trage in der ENV ein
DEBUG = trueStarte den Container neu ,
dann poste hier das Log dazu----- Please be patient! ----- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ----- System Information ----- ----- arch: x86_64 ----- ----- hostname: iobroker-buanet ----- ----- ----- ----- Version Information ----- ----- image: v9.0.1 ----- ----- build: 2023-12-24T23:44:38+00:00 ----- ----- node: v18.19.0 ----- ----- npm: 10.2.3 ----- ----- ----- ----- Environment Variables ----- ----- DEBUG: true ----- ----- SETGID: 1000 ----- ----- SETUID: 1000 ----- -------------------------------------------------------------------------------- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!! DEBUG LOG ACTIVE !!!! !!!! Environment variable DEBUG is set to true. !!!! !!!! This will extend the logging output and may slow down container start. !!!! !!!! Please make sure to deactivate if no longer needed. !!!! !!!! For more information see ioBroker Docker image documentation: !!!! !!!! https://docs.buanet.de/iobroker-docker-image/docs/ !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -------------------------------------------------------------------------------- ----- Step 1 of 5: Preparing container ----- -------------------------------------------------------------------------------- Updating Linux packages on first run... Done. Registering maintenance script as command... Done. -------------------------------------------------------------------------------- ----- Step 2 of 5: Detecting ioBroker installation ----- -------------------------------------------------------------------------------- Existing installation of ioBroker detected in "/opt/iobroker". -------------------------------------------------------------------------------- ----- Step 3 of 5: Checking ioBroker installation ----- -------------------------------------------------------------------------------- (Re)setting permissions (This might take a while! Please be patient!)... Done. [DEBUG] Checking multihost settings... [DEBUG] No multihost settings detected. [DEBUG] Done. [DEBUG] Checking custom objects db settings... [DEBUG] No custom objects db settings detected. [DEBUG] Done. [DEBUG] Checking custom states db settings... [DEBUG] No custom states db settings detected. [DEBUG] Done. Checking Database connection... Failed. [DEBUG] Error message: [DEBUG] node:internal/modules/cjs/loader:1137 [DEBUG] throw err; [DEBUG] ^ [DEBUG] [DEBUG] Error: Cannot find module 'tar' [DEBUG] Require stack: [DEBUG] - /opt/iobroker/node_modules/@iobroker/js-controller-cli/build/lib/setup/setupBackup.js [DEBUG] - /opt/iobroker/node_modules/@iobroker/js-controller-cli/build/index.js [DEBUG] - /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js [DEBUG] at Module._resolveFilename (node:internal/modules/cjs/loader:1134:15) [DEBUG] at Module._load (node:internal/modules/cjs/loader:975:27) [DEBUG] at Module.require (node:internal/modules/cjs/loader:1225:19) [DEBUG] at require (node:internal/modules/helpers:177:18) [DEBUG] at Object.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-cli/build/lib/setup/setupBackup.js:12:31) [DEBUG] at Module._compile (node:internal/modules/cjs/loader:1356:14) [DEBUG] at Module._extensions..js (node:internal/modules/cjs/loader:1414:10) [DEBUG] at Module.load (node:internal/modules/cjs/loader:1197:32) [DEBUG] at Module._load (node:internal/modules/cjs/loader:1013:12) [DEBUG] at Module.require (node:internal/modules/cjs/loader:1225:19) { [DEBUG] code: 'MODULE_NOT_FOUND', [DEBUG] requireStack: [ [DEBUG] '/opt/iobroker/node_modules/@iobroker/js-controller-cli/build/lib/setup/setupBackup.js', [DEBUG] '/opt/iobroker/node_modules/@iobroker/js-controller-cli/build/index.js', [DEBUG] '/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js' [DEBUG] ] [DEBUG] } [DEBUG] [DEBUG] Node.js v18.19.0 Please check your configuration and try again. For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs). [DEBUG] Debug mode prevents the container from exiting on errors. [DEBUG] This enables you to investigate or fix your issue on the command line. [DEBUG] If you want to stop or restart your container you have to do it manually. [DEBUG] IoBroker is not running!
-
@dukle sagte in Fehler und Abbruch bei Neuinstallation in Docker-Umgebung:
Hallo,
heute hat NodeRed nach Erweiterungen und Anpassungen in NodeRed und iobroker plötzlich die Verbindung zum Server verloren.... sehr merkwürdig !
denn
Cannot find module 'tar'
passiert hier sehr oft bei Updates ... aber auf einer anderen Sachlage .
Was hast du genau gemacht ?
Du hast doch erst letztens alles neu gemacht ... Dockerimage neu inkl. auf den JS 5 gegangen !
-
@dukle sagte in Fehler und Abbruch bei Neuinstallation in Docker-Umgebung:
Da alle Backups vorhanden sind, sollte eine vollständige Neuinstallation eines neuen und sauberen Containers im Container-Manager einer Synology erfolgen.
Haben die noch den JS-Controller 4 enthalten oder sind das schon neuere nach deinem Upgrade auf JS 5 !?
-
@glasfaser sagte in Fehler und Abbruch bei Neuinstallation in Docker-Umgebung:
Du hast doch erst letztens alles neu gemacht ... Dockerimage neu inkl. deinem Backup
Richtig, ist auch super gelaufen. Keine Auffälligkeiten, alles perfekt!
Heute wollte ich in iobroker einige dopplte Daten und Werte bereinigen.
Z. B. habe ich Java-Scripte gelöscht, welche in Variablen Tages/Wochen/Monats/Jahreswerte schreiben, gemäß dieser Anleitung:
https://www.kreyenborg.koeln/shelly-verbrauchs-historie-fuer-tag-woche-monat-jahr/comment-page-1/Die Werte werden dann in eine Influxdb geschrieben. Auch diesen Baum habe ich gelöscht, da ich die Werte mittlerweile anders erzeuge, speichere und nicht mehr benötige.
Weiterhin habe in in NodeRed dann Funktionen erstellt und in User-Variablen geschrieben. Das habe ich aber schon mehrfach gemacht.
Und irgendwann ist die Fehlermeldung im Log vom iobroker, wie eingangs geschrieben, gekommen.
Dann nahm das Ganze seinen Lauf.... -
@dukle sagte in Fehler und Abbruch bei Neuinstallation in Docker-Umgebung:
Dann nahm das Ganze seinen Lauf....
Dabei wurde der JS-Controller beschädigt , warum auch immer und aus welchen Grund
Mhh.Was war jetzt mit den Backups .. die sollten laufen ... bzw. du hast meine Frage noch nicht beantwortet
-
@glasfaser sagte in Fehler und Abbruch bei Neuinstallation in Docker-Umgebung:
Haben die noch den JS-Controller 4 enthalten oder sind das schon neuere nach deinem Upgrade auf JS 5 !?
Backups sind alle auf JS5. Das war ja die Idee, ein völlig neues System aufzusetzen, um irgendwelche Laichen aus den vorangegangen Updates zu beseitigen.
Aber ich kann keine Backups anwenden, da ibroker nicht hochläuft. -
@glasfaser sagte in Fehler und Abbruch bei Neuinstallation in Docker-Umgebung:
Dabei wurde der JS-Controller beschädigt , warum auch immer und aus welchen Grund
Mhh.Ich dachte, der JS-Controller ist auch im Docker-Image? Oder ist er nicht?
-
@dukle sagte in Fehler und Abbruch bei Neuinstallation in Docker-Umgebung:
Aber ich kann keine Backups anwenden, da ibroker nicht hochläuft.
Also .. du erstellst einen neuen Container , startest ihn
Dann führst du einBackupRestore mit dem backitup Adapter aus ..Da kommt aber nicht so eine Meldung wie du oben zeigst
-
@dukle sagte in Fehler und Abbruch bei Neuinstallation in Docker-Umgebung:
Ich dachte, der JS-Controller ist auch im Docker-Image? Oder ist er nicht?
Doch ist enthalten ...
-
@glasfaser sagte in Fehler und Abbruch bei Neuinstallation in Docker-Umgebung:
Also .. du erstellst einen neuen Container , startest ihn
mit gleichen Namen wie der alte defekte Container?
mit dem gleichen gemounteten Verzeichnis oder einem neuen leeren Verzeichnis? -
@dukle sagte in Fehler und Abbruch bei Neuinstallation in Docker-Umgebung:
mit gleichen Namen wie der alte defekte Container?
Du hast geschrieben ... es geht nicht deshalb einen neuen Namen
mit dem gleichen gemounteten Verzeichnis oder einem neuen leeren Verzeichnis?
mit einem gemounteten Verzeichnis ( iobroker vorhanden) fährt er immer mit dem defekten hoch,
deshalb ein neues leeres Verzeichniss, dann startet er ganz normal .. mit den Grundadaptern dann das Backup einspielen
-
@glasfaser sagte in Fehler und Abbruch bei Neuinstallation in Docker-Umgebung:
Also .. du erstellst einen neuen Container , startest ihn
Dann führst du ein Backup Restore mit dem backitup Adapter aus ..Also iobroker ist installiert.
Wie bekomme ich jetzt an die Backups ran?
Muss ich die händisch in das gemountete Verzeichnis kopieren?
Und wie funktioniert das restore? Meinst Du damit "Sicherungen abrufen"? -
@dukle sagte in Fehler und Abbruch bei Neuinstallation in Docker-Umgebung:
Muss ich die händisch in das gemountete Verzeichnis kopieren?
ja
Und wie funktioniert das restore? Meinst Du damit "Sicherungen abrufen"?
Ja
-
@glasfaser
In welcher Reihenfolge?- iobroker
- javascript
- zigbee
- nodered
-
nur ioBroker !!
.... und bei der Restore nicht ungeduldig werden ... nimm dir einen Großen Kaffee dazu !
-
@glasfaser
also iobroker läuft wieder. Vielen Dank.ABER:
NodeRed hat immer noch den gleichen Fehler wie eingangs beschrieben und arbeitet nicht richtig.@dukle sagte in Fehler und Abbruch bei Neuinstallation in Docker-Umgebung:
Es kam folgende Fehlermeldung im Log:
TypeError: Cannot read private member from an object whose class did not declare it at __classPrivateFieldGet (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/build/lib/adapter/adapter.js:27:94) at getObject (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/build/lib/adapter/adapter.js:2498:14) at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.node-red/nodes/ioBroker.js:722:21) at process.processImmediate (node:internal/timers:478:21)Ich mache jetzt Feierabend. Bin gefrustet.....
Habe keine Idee woran das liegen könnte.