NEWS
Tausende Fehler "empty object" beim Starten von ... [gelöst]
-
Systemdata Bitte Ausfüllen Hardwaresystem: Synology docker Arbeitsspeicher: 8 GB Festplattenart: HDD Betriebssystem: Linux / buanet/iobroker:latest-v8 JS-Controller-Version: 5.0.16 Nodejs-Version: 18.17.1 NPM-Version: 9.6.7 Installationsart: Docker Image genutzt: Ja Ort/Name der Imagedatei: https://hub.docker.com/r/buanet/iobroker javascript-Adapter Version: 7.1.6 Beim Neustart von
javascript.0
(oder irgendeine andere Instanz des Adapters) erscheinen tausende von Fehlermeldungen "empty object" im Log. Nach einiger Zeit beruhigt sich der Adapter und läuft dann wie gewohnt.
Das Log der Konsole zeigt folgende Meldungen:Sent ready, but not all handlers installed! Sent ready, but not all handlers installed! Sent ready, but not all handlers installed! ================================== > LOG REDIRECT system.adapter.javascript.0 => false [Process stopped] ================================== > LOG REDIRECT system.adapter.javascript.0 => false [system.adapter.javascript.0.logging] [ioredis] Unhandled error event: Error: write EPIPE at afterWriteDispatched (node:internal/stream_base_commons:160:15) at writeGeneric (node:internal/stream_base_commons:151:3) at Socket._writeGeneric (node:net:931:11) at Socket._write (node:net:943:8) at writeOrBuffer (node:internal/streams/writable:392:12) at _write (node:internal/streams/writable:333:10) at Socket.Writable.write (node:internal/streams/writable:337:10) at Redis.scan (/opt/iobroker/node_modules/ioredis/built/commander.js:122:25) at Redis.sendCommand (/opt/iobroker/node_modules/ioredis/built/redis/index.js:679:33) at ScanStream._read (/opt/iobroker/node_modules/ioredis/built/ScanStream.js:36:41) at ScanStream.Readable.read (node:internal/streams/readable:496:12) at maybeReadMore_ (node:internal/streams/readable:650:12) at processTicksAndRejections (node:internal/process/task_queues:82:21) Error: DB closed at close (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:184:25) at Socket.<anonymous> (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:151:20) at Object.onceWrapper (node:events:629:26) at Socket.emit (node:events:514:28) at Socket.emit (node:domain:489:12) at TCP.<anonymous> (node:net:323:12) ================================== > LOG REDIRECT system.adapter.javascript.0 => false [Process stopped] ================================== > LOG REDIRECT system.adapter.javascript.0 => false [system.adapter.javascript.0.logging]
Ärgerlich ist: jedes Mal, wenn ich ein Script im
global
Ordner ändere, startet die Instanz neu, was ja auch wohl muss, und hindert mich an der Weiterarbeit. Das geht dann so lange, bis die Instanz richtig läuft.Ich habe den iobroker neu gestartet, den Container des iobroker und auch den gesamten Stack. Nichts hat geholfen.
Mein Docker Stack besteht aus:
- influxdb:latest
- buanet/iobroker:latest-v8
- redis/latest
Ich habe das Problem auch schon in GitHub gemeldet, doch dort hat man mich an das Forum verwiesen. Das sei kein Problem des iobroker, sonder eines von redis.
Kann mir jemand helfen, wie ich redis überprüfen und korrigieren kann?
-
@peperoni sagte in Tausende Fehler "empty object" beim Starten von javascript.0:
Das Log der Konsole zeigt folgende Meldungen:
welche Konsole?
sieht nicht nach einem iob log aus?Hat das überhaupt mit iob als solchem zu tun?
Das ist doch kein Bug von iobroker, oder?ich verschieb das mal nach offTopic
-
@homoran Das ist die Log-Konsole aus dem ioboker-Container und damit das Log vom iobroker (nicht das log der Adapter im web-admin). Nur da sehe ich doch nicht abgefangene Fehler und deren Ursprung.
-
@peperoni sagte in Tausende Fehler "empty object" beim Starten von javascript.0:
Das ist die Log-Konsole aus dem ioboker-Container und damit das Log vom iobroker
ich kenne den ganzen Konservenkram nicht, würde das aber eher übersetzen mit;
@peperoni sagte in Tausende Fehler "empty object" beim Starten von javascript.0:
Das ist die Log-Konsole aus einem Docker-Container und damit das Log vom Docker (Container) Betriebssystem
-
@homoran Ok. Im Raspi wäre das dann das Log vom Raspi.
Istioredis
denn jetzt redis oder iobroker?- Wenn es iobroker ist, bin ich hier nicht offtopic,
- wenn es redis ist, bin ich offtopic, aber deswegen habe ich auch gefragt
Kann mir jemand helfen, wie ich redis überprüfen und korrigieren kann?
-
@peperoni das kommt auf deine Installation an.
hast du redis als Datenbank für States (und/oder Objekte) selber installiert (oder istces Teil des Dockers)?es gibt ansonsten noch eine interne Redis in ioBroker.
Aber wenn dir auf github gesagt wurde es sei nicht iobroker muss ich davon ausgehen du hast den redis-server extern -
@homoran redis ist Teil des Docker stacks (also ein eigener Container, aus Sicht des ioBrokers ein eigener Server.) Ich habe meine Docker-Installation auf Redis umgestellt u.a. nach dieser Anleitung: https://forum.iobroker.net/topic/26327/redis-in-iobroker-überblick/2
es gibt ansonsten noch eine interne Redis in ioBroker.
Das ist mir neu. Die Doku empfiehlt doch einen externen Redis-Server? Oder meinst du "file"?
-
@peperoni sagte in Tausende Fehler "empty object" beim Starten von javascript.0:
Das ist mir neu.
nein, nicht für die Speicherung von States und Objects. Da ist jsonl im Moment standard.
Unter der Haube gibt es noch ein von außen nicht zugreifbares Redis@peperoni sagte in Tausende Fehler "empty object" beim Starten von javascript.0:
redis ist Teil des Docker stacks
dann liegt da dein Problem
@peperoni sagte in Tausende Fehler "empty object" beim Starten von javascript.0:
aus Sicht des ioBrokers ein eigener Server
-
@homoran Danke für die Erläuterungen.
Dan frage ich noch mal:
kann mir jemand helfen, wie ich redis (extern) überprüfen und korrigieren kann?Ich könnte natürlich auch im redis-Forum fragen, aber die sagen dann, dass es ein iobroker-Problem ist.
-
@peperoni sieh mal hier
https://forum.iobroker.net/post/1095222
Vielleicht passt das -
@peperoni sagte in Tausende Fehler "empty object" beim Starten von javascript.0:
Dan frage ich noch mal:
kann mir jemand helfen, wie ich redis (extern) überprüfen und korrigieren kann?
Ich könnte natürlich auch im redis-Forum fragen, aber die sagen dann, dass es ein iobroker-Problem ist.Ich hab' eine Verständnisfrage: Warum gehst du davon aus, dass Redis das Problem sei und nicht eines deiner Scripte?
Um Redis aus dem Spiel zu nehmen, könntest du ja mal mit
iob setup custom
auf jsonl migrieren und dann nochmal testen. Wenn du dann deine Redis Datenbank löschst und wieder von jsonl zurückmigrierst, KÖNNTEN Fehler beseitigt sein (wenn es denn Fehler in der DB sind).
Ich habe so mal Probleme (die ich durch Spielen an den Objekten selbst verursacht hatte) beseitigen können.
-
@marc-berg Danke für den Tipp. Das hat geholfen.
"Spielen an den Objekten" könnte die Ursache gewesen sein. Ich hatte mal Probleme mit dem Smartthings-Adapter, der hat mir unter zwei Knoten 250.000 Datenpunbkte angelegt. Die konnte ich im Admin nicht löschen. Beim Deinstallieren des Adapters sind dann etliche Fehler aufgetreten und die Knoten und Datenpunkte waren immer noch da (aber keine Instanz mehr). Ich habe die Daten dann in Redis manuell entfernt. Da gingen die Probleme dann los. Das betraf nicht nur javascript.0 sondern auch scenes.0 und jetzt auch noch influxdb.0. Nach der Umstellung auf jsonl funktioniert alles problemlos. Irgendwann werde ich wieder auf redis umstellen. Aktuell brauche ich das wohl nicht (wo ja die Daten in jsonl in der "[@Homoran:] interne[n] Redis in ioBroker" gespeichert werden).
-
@peperoni sagte in Tausende Fehler "empty object" beim Starten von javascript.0:
Aktuell brauche ich das wohl nicht (wo ja die Daten in jsonl in der "[@Homoran:] interne[n] Redis in ioBroker" gespeichert werden).
???
-
Unter der Haube gibt es noch ein von außen nicht zugreifbares Redis
Oder wird das nicht für jsonl verwendet?
-
@peperoni sagte in Tausende Fehler "empty object" beim Starten von javascript.0:
Unter der Haube gibt es noch ein von außen nicht zugreifbares Redis
Oder wird das nicht für jsonl verwendet?
hab ich zumindest nicht geschrieben, weil ich das nicht weiß