NEWS
JavaScript heap out of memory
-
Moin,
ich erhalte seit 2-3 Tagen folgende Fehlermeldungen sporadisch über den Tag verteilt.
ioBroker stürzt dann ab und startet neu.error: host.iobroker Caught by controller[1]: <--- Last few GCs ---> error: host.iobroker Caught by controller[1]: [4316:0x4774fd0] 2723961 ms: Scavenge 222.9 (226.6) -> 222.7 (227.1) MB, 4.3 / 0.0 ms (average mu = 0.998, current mu = 0.999) allocation failure error: host.iobroker Caught by controller[1]: [4316:0x4774fd0] 2723975 ms: Scavenge 223.0 (226.6) -> 222.8 (227.1) MB, 2.8 / 0.0 ms (average mu = 0.998, current mu = 0.999) allocation failure error: host.iobroker Caught by controller[1]: [4316:0x4774fd0] 2727102 ms: Mark-sweep 228.0 (233.1) -> 222.8 (232.3) MB, 814.6 / 0.2 ms (average mu = 0.997, current mu = 0.996) allocation failure scavenge might not succeed error: host.iobroker Caught by controller[1]: <--- JS stacktrace ---> error: host.iobroker Caught by controller[1]: FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory
Kann mir jemand einen Tipp geben wie man "JavaScript heap out of memory" vermeidet oder was man machen kann? Es nervt etwas ....
RasPi3
Adapter sind alle aktuell aus dem stable
js-controller 4.0.23
node v14.20.0
npm 6.14.17 -
@smartin ist wahrscheinlich eine Endlosschleife in einem deiner Scripts
Also erstmal alle Scripte deaktivieren , die du die letzten Tage geändert oder erstellt hast
Evtl siehst du im Log, ob ein Script ausgeführt wurde bevor der Heap kommt oder du findest das Script, das zu den Absturz Zeiten ausgeführt wird
-
@liv-in-sky
Oh Mann, vielen Dank für den Denkanstoß, es kommt tatsächlich von einem Script.
Ich habe jetzt mal ein wenig gestöbert in den Scripts und dann folgendes heraus bekommen:
In einem meiner Scripts wird mit schedule ein Log erstellt und immer wenn ich das Log gleichzeitig geöffnet habe genau zu dieser Zeit kann nicht in diese Datei geschrieben werden. Allerdings nur, wenn ich die Log-Datei mit OpenOffice geöffnet habe passiert das.
Ist das Log in Notepad++ geöffnet, kann er ohne Probleme in die Datei schreiben und N++ aktualisiert mir dann die Ansicht auf den neuesten Stand.
OpenOffice scheint die Datei zu schützen. Muss ich also dort mal gucken, ob man das Verhalten ändern kann. -
Dafür gibt es LogViewer
Open Office ist allerdings keiner.Holst du das Log irgendwie auf deinen Desktop-Rechner?
Oder hast du auf dem Rpi direkt OpenOffice laufen? Und damit auch ein DesktopEnvironment? -
@thomas-braun
Nee, ich logge einige Sensoren, Zustände und Stromwerte/kosten usw. in eine CSV-Datei auf dem NAS und öffne sie dann am Desktop-Rechner.
OpenOffice nur, weil ich es eh habe und die Daten dort übersichtlicher dargestellt werden als in einem Editor. Auf den Rpi greife ich nur per SSH zu, keine Desktop Umgebung -
@smartin
Ich denke das Verhalten kann nicht geändert werden.
Mach eine Kopie von der Datei und öffne dann in openoffice -
evtl das hier - gibt ein json, was man gut auswerten kann
https://www.smarthome-tricks.de/software-iobroker/der-iobroker-log-parser-adapter/