Unter der Haube gibt es noch ein von außen nicht zugreifbares Redis
Oder wird das nicht für jsonl verwendet?
Unter der Haube gibt es noch ein von außen nicht zugreifbares Redis
Oder wird das nicht für jsonl verwendet?
@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).
@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.
@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"?
@homoran Ok. Im Raspi wäre das dann das Log vom Raspi.
Ist ioredis
denn jetzt redis oder iobroker?
Kann mir jemand helfen, wie ich redis überprüfen und korrigieren kann?
@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.
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:
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?