NEWS
[Gelöst] Javaskript Instanz stürzt ab
-
Systemdata Bitte Ausfüllen Hardwaresystem: C3758D4I-4L / Intel Atom CPU C3758 2.20GHz Arbeitsspeicher: 32GB Festplattenart: SSD Betriebssystem: Docker (Host: Unraid 6.12.2) Node-Version: 18.17.1 Nodejs-Version: 18.17.1 NPM-Version: 9.6.7 Installationsart: Docker Image genutzt: Ja Ort/Name der Imagedatei: buanet/iobroker (https://hub.docker.com/r/buanet/iobroker/) Hallo,
ich habe aktuell ein Problem mit der javascript.0 Instanz. Diese stürzt ständig ab. Das Log von solch einem Absturz sieht wie folgt aus:host.081d6fd71134 2023-08-11 07:47:39.695 warn instance system.adapter.javascript.0 terminated due to SIGABRT host.081d6fd71134 2023-08-11 07:47:39.695 error Caught by controller[17]: 18: 0x17036b9 [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.695 error Caught by controller[16]: 17: 0xdea777 v8::internal::Builtin_JsonStringify(int, unsigned long*, v8::internal::Isolate*) [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.695 error Caught by controller[15]: 16: 0x1057a3f v8::internal::JsonStringify(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>) [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.695 error Caught by controller[14]: 15: 0x1056cef v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<false>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.695 error Caught by controller[13]: 14: 0x1052f5a v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<true>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.694 error Caught by controller[12]: 13: 0x1050ba8 v8::internal::JsonStringifier::SerializeString(v8::internal::Handle<v8::internal::String>) [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.694 error Caught by controller[11]: 12: 0x133bf2c v8::internal::IncrementalStringBuilder::Extend() [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.694 error Caught by controller[10]: 11: 0xf0a568 v8::internal::FactoryBase<v8::internal::Factory>::NewRawTwoByteString(int, v8::internal::AllocationType) [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.694 error Caught by controller[9]: 10: 0xf081d4 v8::internal::FactoryBase<v8::internal::Factory>::AllocateRawWithImmortalMap(int, v8::internal::AllocationType, v8::internal::Map, v8::internal::AllocationAlignment) [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.694 error Caught by controller[8]: 9: 0xf10760 v8::internal::Factory::AllocateRaw(int, v8::internal::AllocationType, v8::internal::AllocationAlignment) [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.694 error Caught by controller[7]: 8: 0xf30217 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.694 error Caught by controller[6]: 7: 0xf2ee4e v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.693 error Caught by controller[5]: 6: 0xf5474d v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.693 error Caught by controller[4]: 5: 0xf42265 [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.693 error Caught by controller[3]: 4: 0xd64b67 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.693 error Caught by controller[2]: 3: 0xd647c0 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.693 error Caught by controller[1]: 2: 0xa94834 [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.693 error Caught by controller[1]: 1: 0xb83f50 node::Abort() [io.javascript.0] host.081d6fd71134 2023-08-11 07:47:39.693 error Caught by controller[0]: FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory host.081d6fd71134 2023-08-11 07:47:39.693 error Caught by controller[0]: <--- JS stacktrace ---> host.081d6fd71134 2023-08-11 07:47:39.692 error Caught by controller[0]: [215:0x573aed0] 334039 ms: Mark-sweep 4054.9 (4142.1) -> 4041.4 (4144.6) MB, 6693.9 / 0.0 ms (average mu = 0.078, current mu = 0.028) allocation failure; scavenge might not succeed host.081d6fd71134 2023-08-11 07:47:39.692 error Caught by controller[0]: [215:0x573aed0] 327156 ms: Mark-sweep 4052.4 (4139.6) -> 4038.9 (4142.1) MB, 5409.0 / 0.0 ms (average mu = 0.141, current mu = 0.033) allocation failure; scavenge might not succeed host.081d6fd71134 2023-08-11 07:47:39.692 error Caught by controller[0]: <--- Last few GCs --->
Solch ein Problem hatte ich bisher noch nie mit dem ioBroker und da ich jetzt 2 Tage nicht zu Hause war, weiß ich auch nicht was ich neues gemacht oder geändert hätte, das zu diesen Fehler führen könnte.
Ich habe dann, nachdem ich gestern Abend die Instanz nicht mehr zum laufen bringen konnte, heute morgen einmal den Docker aktualisiert und auf Node.js auf die neue Version gebracht, der Fehler tritt aber weiterhin auf.Meine Recherche bisher hatte ergeben, dass es an fehlerhaften Skripten liegen könnte. Ich habe daraufhin alle einmal ausgeschaltet und danach in Grüppchen wieder aktiviert. Ich sehe da aber keine Korrelation zwischen eingeschalteten Skripten und Instanz stürzt ab.
Hat jemand eine Idee was das Problem ist oder was ich noch probieren kann?
Kann ich irgendwo sehen welches Skript den Fehler verursacht?Vielen Dank und viele Grüße
-
@bubiman Welche Version vom JS-Adapter setzt du denn ein?
-
@bubiman sagte: FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
Endlosschleife?
-
@ro75 sagte in Javaskript Instanz stürzt ab:
@bubiman Welche Version vom JS-Adapter setzt du denn ein?
Der Adapter hat die Version 7.0.3
-
@paul53 sagte in Javaskript Instanz stürzt ab:
@bubiman sagte: FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
Endlosschleife?
Ja danach suche ich gerade, ich hatte aber in den Jahren die ich ioBroker nutze noch nie das Problem und habe jetzt auch seit 2-3 Wochen kein Skript geändert.
Ich versuche gerade nach und nach Skripte einzuschalten um sie hoffentlich den Verursacher zu finden -
OK, ich scheine das fehlerhafte Skript gefunden zu haben.
Ich hatte eine Schleife vom Typ:
Wiederhole bis "Garage geschlossen" Schicke Telegram Nachricht warte 1min
und durch eine Verkettung von Umständen, die in den 6 Monate vorher noch nicht eingetreten ist, war "Garage geschlossen" nie true.
Ich verstehe trotzdem nicht warum die Javascript Instanz innerhalb von 5min angestürzt ist. Er hat auch nie eine Telegram Nachricht geschickt als ob er nie bis zu dem Punkt gekommen ist.Ich habe die Schleife jetzt erstmal in ein "Wiederhole 10 mal" geändert und damit stürzt er nicht ab.
Vielen dank für eure Hilfe
-
@bubiman sagte in [Gelöst] Javaskript Instanz stürzt ab:
Ich habe die Schleife jetzt erstmal in ein "Wiederhole 10 mal" geändert und damit stürzt er nicht ab.
diese 10x (oder solange bis) werden unmittelbar hintereinander im Millisekundentakt gestartet