ioBroker/ioBroker.node-red

v5.20 - Error loading context store

Closed this issue · 10 comments

node-red V5.20

Nach Stromausfall erhalte ich folgende Fehlermeldung und node-red startet nicht mehr:

Was ist zu tun ?

iob Log:
Node-RED: 11 Mar 12:15:45 - [error] Error: Error loading context store: Error: Invalid JSON in context file 'C:\Software\iobroker\iobroker-data\node-red\context\58249c2.4f53464old\27534191197f4dc9.json' at C:\Software\iobroker\node_modules@node-red\runtime\lib\nodes\context\index.js:180:15

Node-RED: 11 Mar 12:15:45 - [error] Failed to start server:

Zeig doch mal den Inhalt der Datei (eventuelle Passwörter / sensible Daten bitte nicht teilen)

Habe es erstmal zum laufen gebracht mit node-red v5.10....... Glück gehabt :-)

Der Inhalt aller Dateien ist leer bzw. es sind nur paar Leerzeichen vorhanden.
Vermutlich durch den Stromausfall.
Es müßte dann aber eine Möglichkeit geben das zu umgehen ?
Bzw. das node-red trotzdem startet ohne gespeicherte context Daten ?

P.S.: Falls jemand über den Log Eintrag stolpert:
Das "old" im Namen 58249c2.4f53464old ist von mir, ich wollte testen ob node-red dann startet wenn der Ordner nicht gefunden wird.

Es müßte dann aber eine Möglichkeit geben das zu umgehen ?

Bestimmt, ist ein Thema von Node-RED nur gültiges JSON da rein zu schreiben oder zumindest fehlertolerant zu parsen. Dazu gibt es hier auch schon einen Issue: node-red/node-red#2723

Hat mit dem Adapter hier ja erstmal nix zu tun.

Ich ging aber davon aus, weil das Thema gerade in der v5.20 aktuell war ?

Unbenannt

Na da wurde der persistent storage ja nur aktiviert - war ein Wunsch hier in den Issues.
Welches Vorgehen wünschst Du Dir jetzt?

Es wäre nicht schlecht bei einem Fehler das laden der context Daten zu verhindern.
Also eine Option in den Adapter-Einstellung in node-red.

Es wäre nicht schlecht bei einem Fehler das laden der context Daten zu verhindern.

Ja, das muss Node-RED anpassen. Der Adapter startet ja nur den Node-RED Prozess.

Okay, dann mach ich dicht

Für alle die das selbe Problem haben.
Adapter node-red stopen
Im der Datei "node_modules\iobroker.node-red\settings.js" folgende Zeilen ausklammern.
Und node-red wieder starten
Kann es selbst aber aktuell nicht mehr testen.

contextStorage: {
default: {
module: "localfilesystem",
config: {
dir: "'%%contextDir%%'"
}
}
},