NEWS
UNSOLVED JS Adapter? heap out of memory
-
Moin, hatte gestern Abend die erste Meldung darauf hin hatte ich den ioBroker neu gestartet ohne Erfolg.
Dann alle JavaScripte gestoppt und den Adapter neu gestartet und die Scripte einzeln wieder eingeschaltet.Seit dem lief es wieder bis gerade eben.
Folgende Fehlermeldung bekomme ich:
host.ioBroker 2019-03-09 13:06:07.989 error instance system.adapter.admin.0 terminated with code null () host.ioBroker 2019-03-09 13:06:07.989 warn instance system.adapter.admin.0 terminated due to SIGABRT Caught 2019-03-09 13:06:07.989 error by controller[13]: 12: 0x1f763431b2e7 Caught 2019-03-09 13:06:07.989 error by controller[13]: [io.admin.0] Caught 2019-03-09 13:06:07.989 error by controller[12]: 0x8e9444 Caught 2019-03-09 13:06:07.989 error by controller[11]: 11: Caught 2019-03-09 13:06:07.989 error by controller[11]: node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding) [io.admin.0] Caught 2019-03-09 13:06:07.989 error by controller[10]: 10: Caught 2019-03-09 13:06:07.989 error by controller[10]: node::StringBytes::Write(v8::Isolate*, char*, unsigned long, v8::Local<v8::Value>, node::encoding, int*) [io.admin.0] Caught 2019-03-09 13:06:07.989 error by controller[9]: 9: Caught 2019-03-09 13:06:07.989 error by controller[9]: v8::String::WriteUtf8(char*, int, int*, int) const [io.admin.0] Caught 2019-03-09 13:06:07.989 error by controller[8]: 8: Caught 2019-03-09 13:06:07.989 error by controller[8]: v8::internal::String::Flatten(v8::internal::Handle<v8::internal::String>, v8::internal::PretenureFlag) [io.admin.0] Caught 2019-03-09 13:06:07.989 error by controller[7]: 7: Caught 2019-03-09 13:06:07.989 error by controller[7]: v8::internal::String::SlowFlatten(v8::internal::Handle<v8::internal::ConsString>, v8::internal::PretenureFlag) [io.admin.0] Caught 2019-03-09 13:06:07.989 error by controller[6]: 6: Caught 2019-03-09 13:06:07.989 error by controller[6]: v8::internal::Factory::NewRawTwoByteString(int, v8::internal::PretenureFlag) [io.admin.0] Caught 2019-03-09 13:06:07.989 error by controller[5]: 5: Caught 2019-03-09 13:06:07.989 error by controller[5]: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [io.admin.0] Caught 2019-03-09 13:06:07.989 error by controller[4]: 4: Caught 2019-03-09 13:06:07.988 error by controller[4]: v8::Utils::ReportOOMFailure(char const*, bool) [io.admin.0] Caught 2019-03-09 13:06:07.988 error by controller[3]: 3: Caught 2019-03-09 13:06:07.988 error by controller[3]: 0x8ccf9c [io.admin.0] Caught 2019-03-09 13:06:07.988 error by controller[2]: 2: Caught 2019-03-09 13:06:07.988 error by controller[2]: node::Abort() [io.admin.0] Caught 2019-03-09 13:06:07.988 error by controller[1]: 1: Caught 2019-03-09 13:06:07.988 error by controller[0]: FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
root@ioBroker:/home/alex# free -m total used free shared buff/cache available Mem: 5829 3236 1939 50 653 2310 Swap: 5996 328 5668
Im Error steht auch der Admin Adapter. Sehe ich das ggf. falsch und der verursacher ist der Admin Adapter?
Dieser ist teilweise auch echt langsam.Hat einer eine Idee?
-
Welche nodejs Version ist im Einsatz? Welche js-controller Version? Welche javascript Adapter Version?
Ein paar mehr Infos wären schon schön -
@kmxak sagte in JS Adapter? heap out of memory:
Hat einer eine Idee?
Swap: 5996 328 5668
Der Speicher ist knapp - der Swap wird schon benutzt
-
@Homoran sagte in JS Adapter? heap out of memory:
Der Speicher ist knapp
Ist das so? Available ist ja noch über 2000 !
-
@Segway
bessere Formulierung?:Der Speicher ist knapp gewesen - der Swap wurde schon benutzt
-
-
Node.js
v8.15.0
NPM
6.4.1
JS Controller
1.4.2Alle Adapter auf latest aktuell.
Der Fehler ist seit dem auch nicht mehr aufgetreten. An dem Tag ging nix...
War sehr komisch.Danke paul53 werde ich mal testen falls es mal wieder auftritt
-
Ok, also die nodejs version sollte nicht vom memory leak betroffen sein.
Was mir da noch so in den Sinn kommt: Was laufen denn da so für Skripte? Haben die alle gescheites Fehlerhandling? Vllt ist an dem tag ne externe Seite oder irgendwas abhängiggen nicht erreichbar gewesen und daher ein Skript wegen mangelndem Fehler-Handling amok gelaufen?
(zB externe URL wird per setInterval regelmässig abgefragt und hatte Timeouts und es haben sich daher laufende requests angestaut weil setInterval halt immer weiter neue requests macht ohne darauf zu achten ob der letzte beendet ist oder sowas)