NEWS
gelöst: FATAL ERROR: Reached heap limit Allocation failed
-
Hallo,
ich habe ein Problem mit meiner ioBroker-Installation. Diese wurde am 27.7. neu erstellt und ein Backup zurückgespielt. ioBroker läuft dabei in einer Debian11-VM (aktuell Nodejs 16.17.0) unter Proxmox mit 8GB RAM, 32GB HDD und 4 Prozessoren. Das System läuft ohne Probleme im Beta-Zweig. Alle Adapter sind aktuell. Ich habe 2 Javasript-Instanzen, welche aktuell 1,5GB RAM brauchen.
Jetzt zeigt sich aber das kein Backup im ioBroker erstellt werden kann. Was kann ich tun?Last login: Wed Aug 17 08:57:11 2022 iobroker@iobroker:~$ iobroker backup host.iobroker 28604 states saved host.iobroker 30435 objects saved <--- Last few GCs ---> [640:0x5deb5c0] 20947 ms: Scavenge 1976.5 (2074.7) -> 1976.2 (2086.0) MB, 4.0 / 0.0 ms (average mu = 0.805, current mu = 0.595) allocation failure [640:0x5deb5c0] 20959 ms: Scavenge 1983.0 (2086.0) -> 1982.9 (2086.7) MB, 4.6 / 0.0 ms (average mu = 0.805, current mu = 0.595) allocation failure [640:0x5deb5c0] 20967 ms: Scavenge 1983.9 (2086.7) -> 1983.2 (2109.7) MB, 6.6 / 0.0 ms (average mu = 0.805, current mu = 0.595) allocation failure <--- JS stacktrace ---> FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory 1: 0xb0a860 node::Abort() [node] 2: 0xa1c193 node::FatalError(char const*, char const*) [node] 3: 0xcf9a6e v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [node] 4: 0xcf9de7 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [node] 5: 0xeb1685 [node] 6: 0xec134d v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node] 7: 0xec404e v8::internal::Heap::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node] 8: 0xe852c2 v8::internal::Factory::AllocateRaw(int, v8::internal::AllocationType, v8::internal::AllocationAlignment) [node] 9: 0xe7d8d4 v8::internal::FactoryBase<v8::internal::Factory>::AllocateRawWithImmortalMap(int, v8::internal::AllocationType, v8::internal::Map, v8::internal::AllocationAlignment) [node] 10: 0xe7f931 v8::internal::FactoryBase<v8::internal::Factory>::NewRawTwoByteString(int, v8::internal::AllocationType) [node] 11: 0x125af3c v8::internal::IncrementalStringBuilder::Extend() [node] 12: 0xfa9c40 v8::internal::JsonStringifier::SerializeString(v8::internal::Handle<v8::internal::String>) [node] 13: 0xfabc31 v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<true>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [node] 14: 0xfaca15 v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<true>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [node] 15: 0xfadd6c v8::internal::JsonStringifier::SerializeJSReceiverSlow(v8::internal::Handle<v8::internal::JSReceiver>) [node] 16: 0xfab027 v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<true>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [node] 17: 0xfaf691 v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<false>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [node] 18: 0xfb0faf v8::internal::JsonStringify(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>) [node] 19: 0xd7bc97 v8::internal::Builtin_JsonStringify(int, unsigned long*, v8::internal::Isolate*) [node] 20: 0x15f2e19 [node] /usr/bin/iobroker: Zeile 8: 640 Abgebrochen node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js "$@"
Wenn dies passiert startet anscheinend der js-controller neu und im Log des ioBroker kommen folgende Meldungen, dass die Instanzen bereits laufen. Das ganze geschieht natürlich auch wenn ich das Backup über den Backitup-Adapter mache (allerdings habe ich keine Fehlermeldung darüber bekommen das dort was fehlgeschlagen ist (siehe Screenshot).
2022-08-17 01:05:15.114 - info: host.iobroker iobroker.js-controller version 4.0.23 js-controller starting 2022-08-17 01:05:15.116 - info: host.iobroker Copyright (c) 2014-2022 bluefox, 2014 hobbyquaker 2022-08-17 01:05:15.117 - info: host.iobroker hostname: iobroker, node: v16.16.0 2022-08-17 01:05:15.117 - info: host.iobroker ip addresses: 192.168.10.16 2022-08-17 01:05:20.371 - info: host.iobroker connected to Objects and States 2022-08-17 01:05:20.418 - info: host.iobroker added notifications configuration of host 2022-08-17 01:05:20.985 - info: host.iobroker Delete state "system.host.iobroker.versions.nodeCurrent" 2022-08-17 01:05:21.014 - info: host.iobroker 65 instances found 2022-08-17 01:05:21.056 - info: host.iobroker starting 47 instances 2022-08-17 01:05:21.206 - info: host.iobroker instance system.adapter.admin.0 started with pid 5367 2022-08-17 01:05:21.213 - info: host.iobroker Delete state "system.host.iobroker.versions.nodeNewest" 2022-08-17 01:05:21.259 - info: host.iobroker Delete state "system.host.iobroker.versions.nodeNewestNext" 2022-08-17 01:05:21.309 - info: host.iobroker Delete state "system.host.iobroker.versions.npmCurrent" 2022-08-17 01:05:21.356 - info: host.iobroker Delete state "system.host.iobroker.versions.npmNewest" 2022-08-17 01:05:21.404 - info: host.iobroker Delete state "system.host.iobroker.versions.npmNewestNext" 2022-08-17 01:05:21.451 - info: host.iobroker Some obsolete host states deleted. 2022-08-17 01:05:22.012 - error: admin.0 (5367) admin.0 already running 2022-08-17 01:05:22.013 - warn: admin.0 (5367) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2022-08-17 01:05:22.608 - error: host.iobroker instance system.adapter.admin.0 terminated with code 7 (ADAPTER_ALREADY_RUNNING) 2022-08-17 01:05:22.609 - info: host.iobroker Restart adapter system.adapter.admin.0 because enabled 2022-08-17 01:05:25.187 - info: host.iobroker instance system.adapter.email.0 started with pid 5378 2022-08-17 01:05:25.788 - error: email.0 (5378) email.0 already running 2022-08-17 01:05:25.789 - warn: email.0 (5378) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2022-08-17 01:05:26.385 - error: host.iobroker instance system.adapter.email.0 terminated with code 7 (ADAPTER_ALREADY_RUNNING) 2022-08-17 01:05:26.386 - info: host.iobroker Restart adapter system.adapter.email.0 because enabled 2022-08-17 01:05:29.191 - info: host.iobroker instance system.adapter.influxdb.0 started with pid 5389 2022-08-17 01:05:29.980 - error: influxdb.0 (5389) influxdb.0 already running 2022-08-17 01:05:29.982 - warn: influxdb.0 (5389) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2022-08-17 01:05:30.578 - error: host.iobroker instance system.adapter.influxdb.0 terminated with code 7 (ADAPTER_ALREADY_RUNNING) 2022-08-17 01:05:30.578 - info: host.iobroker Restart adapter system.adapter.influxdb.0 because enabled 2022-08-17 01:05:33.231 - info: host.iobroker instance system.adapter.influxdb.1 started with pid 5400 2022-08-17 01:05:33.945 - error: influxdb.1 (5400) influxdb.1 already running 2022-08-17 01:05:33.947 - warn: influxdb.1 (5400) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2022-08-17 01:05:34.546 - error: host.iobroker instance system.adapter.influxdb.1 terminated with code 7 (ADAPTER_ALREADY_RUNNING) 2022-08-17 01:05:34.546 - info: host.iobroker Restart adapter system.adapter.influxdb.1 because enabled 2022-08-17 01:05:37.187 - info: host.iobroker instance system.adapter.javascript.0 started with pid 5411 2022-08-17 01:05:38.352 - error: javascript.0 (5411) javascript.0 already running 2022-08-17 01:05:38.353 - warn: javascript.0 (5411) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2022-08-17 01:05:38.949 - error: host.iobroker instance system.adapter.javascript.0 terminated with code 7 (ADAPTER_ALREADY_RUNNING) 2022-08-17 01:05:38.949 - info: host.iobroker Restart adapter system.adapter.javascript.0 because enabled 2022-08-17 01:05:41.187 - info: host.iobroker instance system.adapter.pushover.0 started with pid 5422 2022-08-17 01:05:41.844 - error: pushover.0 (5422) pushover.0 already running 2022-08-17 01:05:41.845 - warn: pushover.0 (5422) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2022-08-17 01:05:42.435 - error: host.iobroker instance system.adapter.pushover.0 terminated with code 7 (ADAPTER_ALREADY_RUNNING) 2022-08-17 01:05:42.435 - info: host.iobroker Restart adapter system.adapter.pushover.0 because enabled 2022-08-17 01:05:45.185 - info: host.iobroker instance system.adapter.pushover.1 started with pid 5433
-
Dein Backup ist zu groß ...
Beispiel:
Schau mal in die Adapterordner ... hast du z.b den Ring Adapter ... sind dort Videos/Bilder hinterlegt .oder
https://forum.iobroker.net/topic/27267/test-adapter-iobroker-backitup-v2-4-x/2078?_=1660850938128
iobroker@iobroker:~$ iobroker backup
Das ist auch schlecht , den User iobroker nennen !
EDIT :
in den Files mal schauen mit
du -hs /opt/iobroker/iobroker-data/files/*
-
@steimi ich hatte die gleichen Probleme.
Bei mir waren es zu viele alte, gestoppte Skriptversionen meinen Gartenbewässerung.
Die haben meinen RAM zugemüllt und irgendwann ging mein Backup nicht mehr.
Als ich alle alte Versionen gelöscht hatte, ging das Nackuo wieder uns der RAM war auch nicht mehr so voll
-
Danke für die schnelle Hilfe. Es geht jetzt wieder. Bei mir war es der Unifi-Protect-Adapter. Hatte dort Motions zum Synchronisieren mit angegeben. Jetzt während des Urlaubes habe ich im Unifi die Aufbewahrungszeit für Aufnahmen auf 14 Tage gestellt, zuviel für den Synch mit ioBroker. Habe die Instanz angepasst und die Objekte gelöscht und nun funktioniert das Backup wieder. Die JavaSkripte sich auch noch eine Baustelle.