NEWS
JS-Adapter startet ständig neu: heap out of memory
-
@smhrambo sagte: Problem bleibt
Dann ist wohl etwas bei der Installation / beim Update des JS-Adapters schief gegangen?
-
Ich weiss zwar das es etwas offtopic ist, aber ich habe iobroker entfernt und alle Daten gelöscht.
Danach habe ich iobroker neu heruntergeladen und gestartet.
Neustart ging ohne Probleme, ich habe die Ersteinrichtung gemacht und danach ein Backup wiederhergestellt.Jetzt passiert gar nichts, ich komme nicht ins Admin-Interface.
Logs sagen folgendes:
Starting ioBroker... ##### #### ### ## # iobroker.js-controller log output # ## ### #### ##### host.iobroker check instance "system.adapter.admin.0" for host "iobroker" host.iobroker check instance "system.adapter.history.0" for host "iobroker" host.iobroker check instance "system.adapter.influxdb.0" for host "iobroker" host.iobroker check instance "system.adapter.influxdb.1" for host "iobroker" host.iobroker check instance "system.adapter.javascript.0" for host "iobroker" host.iobroker check instance "system.adapter.telegram.0" for host "iobroker" host.iobroker check instance "system.adapter.alexa2.0" for host "iobroker" host.iobroker check instance "system.adapter.hm-rega.0" for host "iobroker" host.iobroker check instance "system.adapter.hm-rpc.1" for host "iobroker" host.iobroker check instance "system.adapter.hue.0" for host "iobroker" host.iobroker check instance "system.adapter.modbus.0" for host "iobroker" host.iobroker check instance "system.adapter.mqtt.0" for host "iobroker" host.iobroker check instance "system.adapter.weatherunderground.0" for host "iobroker" host.iobroker check instance "system.adapter.weatherunderground.1" for host "iobroker" host.iobroker check instance "system.adapter.zigbee.0" for host "iobroker" host.iobroker check instance "system.adapter.discovery.0" for host "iobroker" host.iobroker check instance "system.adapter.backitup.0" for host "iobroker" host.iobroker check instance "system.adapter.adguard.0" for host "iobroker" host.iobroker check instance "system.adapter.alarm.0" for host "iobroker" host.iobroker check instance "system.adapter.bidirectional-counter.0" for host "iobroker" host.iobroker check instance "system.adapter.device-reminder.0" for host "iobroker" host.iobroker check instance "system.adapter.device-watcher.0" for host "iobroker" host.iobroker check instance "system.adapter.ems-esp.0" for host "iobroker" host.iobroker check instance "system.adapter.evcc.0" for host "iobroker" host.iobroker check instance "system.adapter.followthesun.0" for host "iobroker" host.iobroker check instance "system.adapter.habpanel.0" for host "iobroker" host.iobroker check instance "system.adapter.iqontrol.0" for host "iobroker" host.iobroker check instance "system.adapter.jarvis.0" for host "iobroker" host.iobroker check instance "system.adapter.material.0" for host "iobroker" host.iobroker check instance "system.adapter.sayit.0" for host "iobroker" host.iobroker check instance "system.adapter.shuttercontrol.0" for host "iobroker" host.iobroker check instance "system.adapter.text2command.0" for host "iobroker" host.iobroker check instance "system.adapter.web.0" for host "iobroker" host.iobroker check instance "system.adapter.zigbee2mqtt.0" for host "iobroker" host.iobroker check instance "system.adapter.zwave2.0" for host "iobroker" Send diag info: {"uuid":"9ac691bb-cf3c-4fbd-9aa3-1466429d7467","language":"en","country":"Germany","hosts":[{"version":"5.0.16","platform":"Javascript/Node.js","type":"linux"}],"node":"v18.19.0","arch":"arm64","docker":true,"adapters":{"admin":{"version":"6.12.0","platform":"Javascript/Node.js"},"discovery":{"version":"4.2.0","platform":"Javascript/Node.js"},"backitup":{"version":"2.8.7","platform":"Javascript/Node.js"},"adguard":{"version":"0.0.8","platform":"Javascript/Node.js"},"alarm":{"version":"3.4.3","platform":"Javascript/Node.js"},"alexa2":{"version":"3.26.3","platform":"Javascript/Node.js"},"bidirectional-counter":{"version":"2.1.3","platform":"Javascript/Node.js"},"bshb":{"version":"0.1.20","platform":"Javascript/Node.js"},"device-reminder":{"version":"3.0.0","platform":"Javascript/Node.js"},"device-watcher":{"version":"2.9.6","platform":"Javascript/Node.js"},"ems-esp":{"version":"2.6.1","platform":"Javascript/Node.js"},"evcc":{"version":"0.0.10","platform":"Javascript/Node.js"},"followthesun":{"version":"0.4.2","platform":"Javascript/Node.js"},"habpanel":{"version":"0.5.0","platform":"Javascript/Node.js"},"history":{"version":"3.0.1","platform":"Javascript/Node.js"},"hm-rega":{"version":"4.0.0","platform":"Javascript/Node.js"},"hm-rpc":{"version":"1.15.19","platform":"Javascript/Node.js"},"hue":{"version":"3.10.1","platform":"Javascript/Node.js"},"influxdb":{"version":"3.2.0","platform":"Javascript/Node.js"},"iqontrol":{"version":"2.3.0","platform":"Javascript/Node.js"},"jarvis":{"version":"3.1.8","platform":"Javascript/Node.js"},"javascript":{"version":"7.1.6","platform":"Javascript/Node.js"},"material":{"version":"1.3.1","platform":"Javascript/Node.js"},"modbus":{"version":"5.0.11","platform":"Javascript/Node.js"},"mqtt":{"version":"5.1.0","platform":"Javascript/Node.js"},"sayit":{"version":"3.0.5","platform":"Javascript/Node.js"},"shuttercontrol":{"version":"1.6.3","platform":"Javascript/Node.js"},"snips":{"version":"1.5.1","platform":"Javascript/Node.js"},"socketio":{"version":"6.6.0","platform":"Javascript/Node.js"},"telegram":{"version":"2.0.1","platform":"Javascript/Node.js"},"text2command":{"version":"3.0.2","platform":"Javascript/Node.js"},"weatherunderground":{"version":"3.6.0","platform":"Javascript/Node.js"},"web":{"version":"6.1.10","platform":"Javascript/Node.js"},"ws":{"version":"2.5.8","platform":"Javascript/Node.js"},"zigbee":{"version":"1.8.24","platform":"Javascript/Node.js"},"zigbee2mqtt":{"version":"2.13.3","platform":"Javascript/Node.js"},"zwave2":{"version":"3.1.0","platform":"Javascript/Node.js"}},"statesType":"jsonl","objectsType":"jsonl","noInstances":35,"compactMode":true,"noCompactInstances":1,"model":"Cortex-A72","cpus":4,"mem":4030959616,"ostype":"Linux","city":"Hamburg"}
-
-
@thomas-braun said in JS-Adapter startet ständig neu: heap out of memory:
iob diag
Sorry hat sich nach einem Neustart des Pis erledigt.
Aber der JS Fehler ist immer noch da.
Es laufen nach der Neuinstallation nur folgende Adapter:- admin.0
- backitup.0
- javascript.0
Die Skripte sind weiterhin deaktiviert.
iob diag:
Skript v.2023-10-10 *** BASE SYSTEM *** cat: /sys/devices/virtual/dmi/id/sys_vendor: No such file or directory Hardware Vendor : Kernel : aarch64 Userland : arm64 Docker : v9.0.1 Virtualization : Docker Kernel : aarch64 Userland : arm64 Systemuptime and Load: 00:42:10 up 8:22, 0 user, load average: 1.45, 1.26, 1.15 CPU threads: 4 *** Time and Time Zones *** Fri Dec 1 23:42:10 UTC 2023 Sat Dec 2 00:42:10 CET 2023 CET +0100 Etc/UTC *** User and Groups *** root /root root *** X-Server-Setup *** X-Server: false Desktop: Terminal: *** MEMORY *** total used free shared buff/cache available Mem: 4.0G 1.8G 418M 43M 2.0G 2.3G Swap: 104M 104M 196K Total: 4.1G 1.9G 418M 3844 M total memory 1695 M used memory 1742 M active memory 1288 M inactive memory 398 M free memory 114 M buffer memory 1768 M swap cache 99 M total swap 99 M used swap 0 M free swap *** FILESYSTEM *** Filesystem Type Size Used Avail Use% Mounted on overlay overlay 367G 120G 233G 35% / tmpfs tmpfs 64M 0 64M 0% /dev shm tmpfs 64M 0 64M 0% /dev/shm /dev/root ext4 367G 120G 233G 35% /opt/iobroker tmpfs tmpfs 1.9G 0 1.9G 0% /proc/asound tmpfs tmpfs 1.9G 0 1.9G 0% /sys/firmware Messages concerning ext4 filesystem in dmesg: dmesg: read kernel buffer failed: Operation not permitted Show mounted filesystems \(real ones only\): TARGET SOURCE FSTYPE OPTIONS /usr/share/zoneinfo/Etc/UTC /dev/root[/usr/share/zoneinfo/Europe/Berlin] ext4 ro,noatime /opt/iobroker /dev/root[/docker/iobroker_stack/app/data] ext4 rw,noatime /etc/resolv.conf /dev/root[/var/lib/docker/containers/dbae87321dd4fe0d2db919b36c1a52a9c4066f5d25c9c11ad75bfc291fdafb0f/resolv.conf] ext4 rw,noatime /etc/hostname /dev/root[/var/lib/docker/containers/dbae87321dd4fe0d2db919b36c1a52a9c4066f5d25c9c11ad75bfc291fdafb0f/hostname] ext4 rw,noatime /etc/hosts /dev/root[/var/lib/docker/containers/dbae87321dd4fe0d2db919b36c1a52a9c4066f5d25c9c11ad75bfc291fdafb0f/hosts] ext4 rw,noatime Files in neuralgic directories: /var: 34M /var/ 31M /var/lib 19M /var/lib/apt/lists 19M /var/lib/apt 13M /var/lib/dpkg /opt/iobroker/backups: 2.2M /opt/iobroker/backups/ /opt/iobroker/iobroker-data: 298M /opt/iobroker/iobroker-data/ 280M /opt/iobroker/iobroker-data/files 67M /opt/iobroker/iobroker-data/files/javascript.admin 55M /opt/iobroker/iobroker-data/files/material 53M /opt/iobroker/iobroker-data/files/material/static The five largest files in iobroker-data are: 41M /opt/iobroker/iobroker-data/files/material/static/js/main.c5478f66.js.map 21M /opt/iobroker/iobroker-data/files/web.admin/static/js/main.aaea95f8.js.map 18M /opt/iobroker/iobroker-data/files/text2command.admin/static/js/main.274a4d8d.js.map 16M /opt/iobroker/iobroker-data/objects.jsonl 9.9M /opt/iobroker/iobroker-data/files/material/static/js/main.c5478f66.js USB-Devices by-id: USB-Sticks - Avoid direct links to /dev/* in your adapter setups, please always prefer the links 'by-id': find: '/dev/serial/by-id/': No such file or directory *** NodeJS-Installation *** /usr/bin/nodejs v18.19.0 /usr/bin/node v18.19.0 /usr/bin/npm 10.2.3 /usr/bin/npx 10.2.3 /usr/bin/corepack 0.22.0 nodejs: Installed: 18.19.0-1nodesource1 Candidate: 18.19.0-1nodesource1 Version table: *** 18.19.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 100 /var/lib/dpkg/status 18.18.2-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.18.1-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.18.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.17.1-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.17.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.16.1-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.16.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.15.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.14.2-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.14.1-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.14.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.13.0+dfsg1-1 500 500 http://deb.debian.org/debian bookworm/main arm64 Packages 18.13.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.12.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.11.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.10.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.9.1-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.9.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.8.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.7.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.6.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.5.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.4.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.3.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.2.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.1.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages 18.0.0-1nodesource1 500 500 https://deb.nodesource.com/node_18.x nodistro/main arm64 Packages Temp directories causing npm8 problem: 0 No problems detected Errors in npm tree: *** ioBroker-Installation *** ioBroker Status iobroker is running on this host. Objects type: jsonl States type: jsonl Core adapters versions js-controller: 5.0.16 admin: 6.12.0 javascript: 7.1.6 Adapters from github: 0 Adapter State system.adapter.adguard.0 : adguard : iobroker - disabled, compact disabled + system.adapter.admin.0 : admin : iobroker - enabled, compact disabled, port: 8081, bind: 0.0.0.0 (SSL), run as: admin system.adapter.alarm.0 : alarm : iobroker - disabled, compact disabled system.adapter.alexa2.0 : alexa2 : iobroker - disabled, compact disabled + system.adapter.backitup.0 : backitup : iobroker - enabled, compact disabled system.adapter.bidirectional-counter.0 : bidirectional-counter : iobroker - disabled, compact disabled system.adapter.device-reminder.0 : device-reminder : iobroker - disabled, compact disabled system.adapter.device-watcher.0 : device-watcher : iobroker - disabled, compact disabled system.adapter.discovery.0 : discovery : iobroker - disabled, compact disabled system.adapter.ems-esp.0 : ems-esp : iobroker - disabled, compact disabled system.adapter.evcc.0 : evcc : iobroker - disabled, compact disabled, port: 7070 system.adapter.followthesun.0 : followthesun : iobroker - disabled, compact disabled system.adapter.habpanel.0 : habpanel : iobroker - disabled system.adapter.history.0 : history : iobroker - disabled, compact disabled system.adapter.hm-rega.0 : hm-rega : iobroker - disabled, compact disabled system.adapter.hm-rpc.1 : hm-rpc : iobroker - disabled, compact disabled, port: 0 system.adapter.hue.0 : hue : iobroker - disabled, compact disabled, port: 443 system.adapter.influxdb.0 : influxdb : iobroker - disabled, compact disabled, port: 8086 system.adapter.influxdb.1 : influxdb : iobroker - disabled, compact disabled, port: 8086 system.adapter.iqontrol.0 : iqontrol : iobroker - disabled, compact disabled system.adapter.jarvis.0 : jarvis : iobroker - disabled, compact disabled + system.adapter.javascript.0 : javascript : iobroker - enabled, compact disabled system.adapter.material.0 : material : iobroker - disabled system.adapter.modbus.0 : modbus : iobroker - disabled, compact disabled system.adapter.mqtt.0 : mqtt : iobroker - disabled, compact disabled, port: 1883, bind: 0.0.0.0 system.adapter.sayit.0 : sayit : iobroker - disabled, compact disabled, port: 0 system.adapter.shuttercontrol.0 : shuttercontrol : iobroker - disabled, compact disabled system.adapter.telegram.0 : telegram : iobroker - disabled, compact disabled, port: 8443, bind: 0.0.0.0 system.adapter.text2command.0 : text2command : iobroker - disabled, compact disabled system.adapter.weatherunderground.0 : weatherunderground : iobroker - disabled, compact disabled system.adapter.weatherunderground.1 : weatherunderground : iobroker - disabled, compact disabled system.adapter.web.0 : web : iobroker - disabled, compact enabled (group 1), port: 8082, bind: 0.0.0.0 (SSL), run as: admin system.adapter.zigbee.0 : zigbee : iobroker - disabled, compact disabled, port: /dev/ttyAMA0 system.adapter.zigbee2mqtt.0 : zigbee2mqtt : iobroker - disabled, compact disabled system.adapter.zwave2.0 : zwave2 : iobroker - disabled, compact disabled + instance is alive Enabled adapters with bindings + system.adapter.admin.0 : admin : iobroker - enabled, compact disabled, port: 8081, bind: 0.0.0.0 (SSL), run as: admin system.adapter.web.0 : web : iobroker - disabled, compact enabled (group 1), port: 8082, bind: 0.0.0.0 (SSL), run as: admin ioBroker-Repositories stable : http://download.iobroker.net/sources-dist.json beta : http://download.iobroker.net/sources-dist-latest.json Active repo(s): stable Installed ioBroker-Instances Used repository: stable Adapter "adguard" : 0.0.8 , installed 0.0.8 Adapter "admin" : 6.12.0 , installed 6.12.0 Adapter "alarm" : 3.4.3 , installed 3.4.3 Adapter "alexa2" : 3.26.3 , installed 3.26.3 Adapter "backitup" : 2.8.7 , installed 2.8.7 Adapter "bidirectional-counter": 2.1.3, installed 2.1.3 Adapter "device-reminder": 3.0.0 , installed 3.0.0 Adapter "device-watcher": 2.9.6 , installed 2.9.6 Adapter "discovery" : 4.2.0 , installed 4.2.0 Adapter "ems-esp" : 2.6.1 , installed 2.6.1 Adapter "evcc" : 0.0.10 , installed 0.0.10 Adapter "followthesun" : 0.4.2 , installed 0.4.2 Adapter "habpanel" : 0.5.0 , installed 0.5.0 Adapter "history" : 3.0.1 , installed 3.0.1 Adapter "hm-rega" : 4.0.0 , installed 4.0.0 Adapter "hm-rpc" : 1.15.19 , installed 1.15.19 Adapter "hue" : 3.10.1 , installed 3.10.1 Adapter "influxdb" : 3.2.0 , installed 3.2.0 Adapter "iqontrol" : 2.3.0 , installed 2.3.0 Adapter "jarvis" : 3.1.8 , installed 3.1.8 Adapter "javascript" : 7.1.6 , installed 7.1.6 Controller "js-controller": 5.0.16 , installed 5.0.16 Adapter "material" : 1.3.1 , installed 1.3.1 Adapter "modbus" : 5.0.11 , installed 5.0.11 Adapter "mqtt" : 5.1.0 , installed 5.1.0 Adapter "shuttercontrol": 1.6.3 , installed 1.6.3 Adapter "simple-api" : 2.7.2 , installed 2.7.2 Adapter "socketio" : 6.6.0 , installed 6.6.0 Adapter "telegram" : 2.0.1 , installed 2.0.1 Adapter "text2command" : 3.0.2 , installed 3.0.2 Adapter "weatherunderground": 3.6.0, installed 3.6.0 Adapter "web" : 6.1.10 , installed 6.1.10 Adapter "ws" : 2.5.8 , installed 2.5.8 Adapter "zigbee" : 1.8.24 , installed 1.8.24 Adapter "zigbee2mqtt" : 2.13.3 , installed 2.13.3 Adapter "zwave2" : 3.1.0 , installed 3.1.0 Objects and States Please stand by - This may take a while Objects: 11697 States: 10875 *** OS-Repositories and Updates *** Hit:1 http://deb.debian.org/debian bookworm InRelease Hit:2 http://deb.debian.org/debian bookworm-updates InRelease Hit:3 http://deb.debian.org/debian-security bookworm-security InRelease Hit:4 https://deb.nodesource.com/node_18.x nodistro InRelease Reading package lists... Pending Updates: 0 *** Listening Ports *** Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name tcp 0 0 127.0.0.1:9001 0.0.0.0:* LISTEN 1010 834014 - tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1010 834021 - tcp 0 0 127.0.0.11:39871 0.0.0.0:* LISTEN 0 833571 - tcp6 0 0 :::8081 :::* LISTEN 1010 835040 - udp 0 0 127.0.0.11:44813 0.0.0.0:* 0 833570 - *** Log File - Last 25 Lines *** 2023-12-02 00:42:09.539 - error: host.iobroker Caught by controller[23]: 23: 0x101edb0 v8::internal::JsonParser<unsigned short>::ParseJsonValue() [io.javascript.0] 2023-12-02 00:42:09.539 - error: host.iobroker Caught by controller[24]: 24: 0x101f2f0 v8::internal::JsonParser<unsigned short>::ParseJson() [io.javascript.0] 2023-12-02 00:42:09.539 - error: host.iobroker Caught by controller[25]: 25: 0xdcc460 v8::internal::Builtin_JsonParse(int, unsigned long*, v8::internal::Isolate*) [io.javascript.0] 2023-12-02 00:42:09.539 - error: host.iobroker Caught by controller[26]: 26: 0x167c62c [io.javascript.0] 2023-12-02 00:42:09.539 - warn: host.iobroker instance system.adapter.javascript.0 terminated due to SIGABRT 2023-12-02 00:42:56.132 - error: host.iobroker Caught by controller[0]: <--- Last few GCs ---> 2023-12-02 00:42:56.134 - error: host.iobroker Caught by controller[0]: of marking 163 ms) (average mu = 0.755, current mu = 0.754) finalize incremen[2987:0x1aa44870] 10656 ms: Mark-sweep 67.5 (97.7) -> 60.9 (101.0) MB, 41.9 / 0.0 ms (+ 9.8 ms in 24 steps since start of marking, biggest step 3.0 ms, walltime since start of marking 165 ms) (average mu = 0.801, current mu = 0.843) finalize increment[2987:0x1aa44870] 11119 ms: Mark-sweep 84.3 (107.9) -> 81.5 (119.4) MB, 148.3 / 0.0 ms (average mu = 0.728, current mu = 0.679) allocation failure; scavenge might not succeed 2023-12-02 00:42:56.135 - error: host.iobroker Caught by controller[0]: <--- JS stacktrace ---> 2023-12-02 00:42:56.135 - error: host.iobroker Caught by controller[0]: FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory 2023-12-02 00:42:56.135 - error: host.iobroker Caught by controller[1]: 1: 0xb7f974 node::Abort() [io.javascript.0] 2023-12-02 00:42:56.136 - error: host.iobroker Caught by controller[2]: 2: 0xa97f08 [io.javascript.0] 2023-12-02 00:42:56.136 - error: host.iobroker Caught by controller[3]: 3: 0xd40e78 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [io.javascript.0] 2023-12-02 00:42:56.136 - error: host.iobroker Caught by controller[4]: 4: 0xd41048 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [io.javascript.0] 2023-12-02 00:42:56.136 - error: host.iobroker Caught by controller[5]: 5: 0xf1f5fc [io.javascript.0] 2023-12-02 00:42:56.137 - error: host.iobroker Caught by controller[6]: 6: 0xf31594 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [io.javascript.0] 2023-12-02 00:42:56.137 - error: host.iobroker Caught by controller[7]: 7: 0xf0d718 v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [io.javascript.0] 2023-12-02 00:42:56.137 - error: host.iobroker Caught by controller[8]: 8: 0xf0e6f0 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [io.javascript.0] 2023-12-02 00:42:56.137 - error: host.iobroker Caught by controller[9]: 9: 0xef0cc0 v8::internal::Factory::AllocateRawWithAllocationSite(v8::internal::Handle<v8::internal::Map>, v8::internal::AllocationType, v8::internal::Handle<v8::internal::AllocationSite>) [io.javascript.0] 2023-12-02 00:42:56.137 - error: host.iobroker Caught by controller[10]: 10: 0xefb464 v8::internal::Factory::NewJSObjectFromMap(v8::internal::Handle<v8::internal::Map>, v8::internal::AllocationType, v8::internal::Handle<v8::internal::AllocationSite>) [io.javascript.0] 2023-12-02 00:42:56.138 - error: host.iobroker Caught by controller[11]: 11: 0x101e04c v8::internal::JsonParser<unsigned short>::BuildJsonObject(v8::internal::JsonParser<unsigned short>::JsonContinuation const&, v8::base::SmallVector<v8::internal::JsonProperty, 16ul, std::allocator<v8::internal::JsonProperty> > const&, v8::internal::Handle<v8::internal::Map>) [io.javascript.0] 2023-12-02 00:42:56.138 - error: host.iobroker Caught by controller[12]: 12: 0x101edb0 v8::internal::JsonParser<unsigned short>::ParseJsonValue() [io.javascript.0] 2023-12-02 00:42:56.138 - error: host.iobroker Caught by controller[13]: 13: 0x101f2f0 v8::internal::JsonParser<unsigned short>::ParseJson() [io.javascript.0] 2023-12-02 00:42:56.138 - error: host.iobroker Caught by controller[14]: 14: 0xdcc460 v8::internal::Builtin_JsonParse(int, unsigned long*, v8::internal::Isolate*) [io.javascript.0] 2023-12-02 00:42:56.138 - error: host.iobroker Caught by controller[15]: 15: 0x167c62c [io.javascript.0] 2023-12-02 00:42:56.138 - warn: host.iobroker instance system.adapter.javascript.0 terminated due to SIGABRT
======================= SUMMARY ======================= v.2023-10-10 Model : Raspberry Pi 4 Model B Rev 1.2 Kernel : aarch64 Userland : arm64 Docker : v9.0.1 Installation: Docker Kernel: aarch64 Userland: arm64 Timezone: Etc/UTC User-ID: 0 X-Server: false Pending OS-Updates: 0 Pending iob updates: 0 Nodejs-Installation: /usr/bin/nodejs v18.19.0 /usr/bin/node v18.19.0 /usr/bin/npm 10.2.3 /usr/bin/npx 10.2.3 /usr/bin/corepack 0.22.0 Recommended versions are nodejs 18.19.0 and npm 10.2.3 Your nodejs installation is correct MEMORY: total used free shared buff/cache available Mem: 4.0G 1.8G 426M 43M 1.9G 2.2G Swap: 104M 104M 196K Total: 4.1G 2.0G 427M Active iob-Instances: 3 Active repo(s): stable ioBroker Core: js-controller 5.0.16 admin 6.12.0 ioBroker Status: iobroker is running on this host. Objects type: jsonl States type: jsonl Status admin and web instance: + system.adapter.admin.0 : admin : iobroker - enabled, compact disabled, port: 8081, bind: 0.0.0.0 (SSL), run as: admin system.adapter.web.0 : web : iobroker - disabled, compact enabled (group 1), port: 8082, bind: 0.0.0.0 (SSL), run as: admin Objects: 11697 States: 10875 Size of iob-Database: 16M /opt/iobroker/iobroker-data/objects.jsonl 3.2M /opt/iobroker/iobroker-data/states.jsonl =================== END OF SUMMARY ====================
======================= SUMMARY ======================= v.2023-10-10 Model : Raspberry Pi 4 Model B Rev 1.2 Kernel : aarch64 Userland : arm64 Docker : v9.0.1 Installation: Docker Kernel: aarch64 Userland: arm64 Timezone: Etc/UTC User-ID: 0 X-Server: false Pending OS-Updates: 0 Pending iob updates: 0 Nodejs-Installation: /usr/bin/nodejs v18.19.0 /usr/bin/node v18.19.0 /usr/bin/npm 10.2.3 /usr/bin/npx 10.2.3 /usr/bin/corepack 0.22.0 Recommended versions are nodejs 18.19.0 and npm 10.2.3 Your nodejs installation is correct MEMORY: total used free shared buff/cache available Mem: 4.0G 1.8G 426M 43M 1.9G 2.2G Swap: 104M 104M 196K Total: 4.1G 2.0G 427M Active iob-Instances: 3 Active repo(s): stable ioBroker Core: js-controller 5.0.16 admin 6.12.0 ioBroker Status: iobroker is running on this host. Objects type: jsonl States type: jsonl Status admin and web instance: + system.adapter.admin.0 : admin : iobroker - enabled, compact disabled, port: 8081, bind: 0.0.0.0 (SSL), run as: admin system.adapter.web.0 : web : iobroker - disabled, compact enabled (group 1), port: 8082, bind: 0.0.0.0 (SSL), run as: admin Objects: 11697 States: 10875 Size of iob-Database: 16M /opt/iobroker/iobroker-data/objects.jsonl 3.2M /opt/iobroker/iobroker-data/states.jsonl =================== END OF SUMMARY ====================
-
Docker auf einem Raspberry?
Ich muss hier weg... -
@thomas-braun Das ganze hat Jahre lang wunderbar funktioniert.
Habe ich so selbst in der Industrie schon gesehen.
Sehr praktisch zum testen und bereitsellen von Software, ohne sich das System voll zu müllen, da man sie Software Restlos entfernen kann. -
Zum anschauen und testen von irgendwas ist das sinnvoll. Fur dauerhaften Betrieb ist es nur eine entbehrliche weitere Softwareschicht, die auch noch richtig unterhalten werden will.
Ist mir für den ioBroker nur ein unnötiger Ressourcenfresser.Btw: Dir geht der für nodejs allokierte Arbeitsspeicher aus...
-
@thomas-braun Es liegen 300MB freien RAM und 2GB an Verfügbaren RAM rum.
Wenn ich den Container ohne Backup starte und dann JS laufen lasse habe ich das Problem nicht.
Dann wird wohl docker nicht das Problem sein, sondern irgendwelche vorhandenen Daten oder ein Installationsprozess.
Die Frage ist nur warum dieser Fehler bei einer Neuinstallation + Backup wieder "eingebaut" wird.Btw:
Viele vergleichen Docker beim Resourcenverbrauch gerne mit VM, habe ich früher auch gemacht. Ich musste aber feststellen, dass dies nicht der Fall ist und der Overhead realtiv gering ist, wenn man weiss wie man die Container aufzubauen hat.
One program per container.
Wenn man sich daran hält ist man "fast" auf der Ebene eines chroot mit einem netten Verwaltungs und Sicherheitsbonus.
Da iobroker mit seinen Adaptern recht Modular aufgebaut ist mag diese Philosophie hier nicht ganz zutreffen, aber das erklärt das oben beschriebene Verhalten trotzdem nicht. -
@smhrambo sagte in JS-Adapter startet ständig neu: heap out of memory:
Die Frage ist nur warum dieser Fehler bei einer Neuinstallation + Backup wieder "eingebaut" wird.
Nach einer Neuinstallation ohne Backup, ist da nicht viel los. Mit anderen Worten da wird nicht zu viel Speicher benötigt.
Wenn das Backup drin ist, laufen ja wieder Adapter, Skripte,... und das braucht halt Speicher. Und mit jeder Weiterentwicklung von Adaptern gibt es mehr Funktionalität. An der Sicherheit wird auch gearbeitet - und das braucht halt mehr Speicher, als noch vor 5 Jahren.
Aber das ist nicht nur beim ioBroker so. Gleiches Verhalten hast du auch bei Windows, Windows-Programmen und auch bi Linux. Früher war alles gefühlt schlanker, platzsparender und weniger speicherhungrig. Aber so ist nun mal der Lauf.
Dir geht mit der Variante ioBroker im Docker einfach der Speicher auf deinem Raspi aus, auch bi einem 4GB Model. Ich hatte den ioBroker mehrere Jahre auf meinem Raspi (4GB) nornal, ohne Docker laufen mit mehr als 20 Adaptern, ohne Problem.
Aus meiner Sicht:
-
wenn du weiterhin mit Docker arbeiten willst/musst dann brauchst du mehr RAM
-
RAM erweitern auf einem Raspi soll zwar gehen, mir aber zu kompliziert
-
neuer Raspi mit 8GB oder lieber gleich ein NUC
Die 3 Punkte unter dem Gesichtspunkt, dass du mit Docker arbeiten willst. Alternativ verzichte auf Docker (zumindest ohne ioBroker, nur für andere Projekte).
Ro75.
-
-
@ro75 Im Log ist zu erkennen das nach dem Backup kein Adapter läuft und auch kein Skript.
Das bedeutet auch das kein RAM benötigt wird.Nachmal, ALLE Adapter und Skripte sind nach dem Backup DEAKTIVIERT.
Erst wenn ich nun den JS Adapter aktiviere und ich meine nur den JS Adapter, kommt der Fehler wieder.
Wenn ich das Backup NICHT einspiele und selber ALLE Adapter installiere und aktiviere, kommt der Fehler nicht.
Inzwischen laufen sogar wieder Sktipte ohne Fehlermeldung.
Kein anderer Docker Container oder Prozess hat Probleme auf dem System.
Besonders InfluxDB musste dann Fehler ohne Ende schmeißen.Ich glaube aber dem Fehler näher zu kommen.
Wie kann man von allen Objekten den Raum und die Funktion aufeinmal entfernen, ohne das Objekt selber oder andere Einstellungen von den Objekten zu löschen?
Ich möchte nicht meine Zeit damit verbringen alle Objekte wieder neu einzustellen bzgl. InfluxDB und co.
Zudem denke ich das es auch im interesse der Community ist, wenn man der Ursache genau auf den Grund geht.Bzgl. der RAM verbrauchs:
Ich bin Programmierer, ich habe bisher nur ein paar flüchtige Blicke in die Adapterprogrammierung geworfen. Trotzdem versteht ich nicht was dafür sorge, dass mein Weihnachtsscript (aus meinem ersten Post), den RAM Verbrauch vom JS Adapter um ca. 125MB steigen lässt. Da sind gerade mal 3 Integer Variablen, 6 Funktionsaufrufe und 3 Vergleiche drin. -
@smhrambo sagte in JS-Adapter startet ständig neu: heap out of memory:
JavaScript heap out of memory
soweit ich weiß bezieht sich das nicht (nur) auf den javascript Adapter, sondern auf alles was mit js läuft.
-
@smhrambo sagte in JS-Adapter startet ständig neu: heap out of memory:
Ich bin Programmierer, ich habe bisher nur ein paar flüchtige Blicke in die Adapterprogrammierung geworfen. Trotzdem versteht ich nicht was dafür sorge, dass mein Weihnachtsscript (aus meinem ersten Post), den RAM Verbrauch vom JS Adapter um ca. 125MB steigen lässt. Da sind gerade mal 3 Integer Variablen, 6 Funktionsaufrufe und 3 Vergleiche drin
Ich programmiere auch seit 20 Jahren - nur Windows, seit 2020 auch JS, dank ioBroker. Aber um zu schauen was bei dir ist, müsste man schon das vollständige Skript mal sehen.
Ro75.
-
@homoran said in JS-Adapter startet ständig neu: heap out of memory:
soweit ich weiß bezieht sich das nicht (nur) auf den javascript Adapter, sondern auf alles was mit js läuft.
Dann stellt sich nur immernoch die Frage warum nur der JS Adapter davon betroffen ist.
Soweit ich weiss läuft das gesamte ioBroker-System auf javascript.Und dies nicht bei einer Neuinstallation der Fall ist, sondern nur beim wiederherstellen alter Daten.
-
@smhrambo sagte in JS-Adapter startet ständig neu: heap out of memory:
warum nur der JS Adapter davon betroffen ist.
die Meldung kommt vom Controller!
-
@homoran Das ist mir bewusst, nur müsste dieser ja auch bei andere Adapter diese Fehlermeldung ausgeben wenn ich sie starte und zu wenig RAM zur Verfügung stehen.
Also z.b. die Reihenfolge ändere in der ich sie starte.Wenn ich das Backup einspiele und alle Adapter die man deaktivieren kann deaktiviere.
Braucht ioBroker ca. 200MB.
Alle Adapter die deaktiviert sind ohne den JS-Adapter brauchen im laufenden Zustand ca. 1,2GB.
Der JS Adapter brauch ca. 250MB mit einem Skript (Auf einem neu installieren ioBroker).
Wenn also kein Adapter läuft, also 1,2GB zur Verfügung stehen und der JS Adapter ca. 250MB braucht, kann iobroker nicht genug RAM allokieren?
Bei einem Neuinstallieren System klappt es aber(inklusive aller anderen Adapter die ca. 1,2GB brauchen)!!! -
@smhrambo sagte in JS-Adapter startet ständig neu: heap out of memory:
nur müsste dieser ja auch bei andere Adapter diese Fehlermeldung ausgeben wenn ich sie starte und zu wenig RAM zur Verfügung stehen.
ich kenne mich viel zu wenig damit aus.
Ich weiss auch nicht eas sich hinter Heap verbirgt. -
@homoran In der Programmierung gibt es zwei Speicherarten:
-
Stack
Wie der Name schon sagt handelt es sich um einen Stapel, auf diesen werden bei Funktionsaufrufen oder Sprüngen Daten abgelegt, die beim zurückkehren wieder heruntergenommen werden, um mit ihnen weiter zu arbeiten.
Stell es dir wie ein Aktenstapel vor auf dem du deine Dokumente ablegst, weil dein Chef gerade etwas anderes von dir will und die du dann wieder runternehmen kannst wenn du mit der neuen Aufgabe fertig geworden bist. Er sorgt dafür, dass du dich mit den Daten beschäftigst mit den du als letztes zu tun hattest.
Jeder Prozess besitzt einen eigenen Stack.
Im Stack liegen nur Daten/Variablen die für die jeweilige Funktion relevant sind.
Wenn die Funktion fertig ist werden die nötigen Daten zuück gegeben, alle anderen Daten der Funktion werden verworfen. -
Heap
Beim Heap handelt es sich bei modernen Systemen um einen dynamischen Speicher, auf dem freier Speicherplatz addressiert/angefordert werden kann. Wenn du Speicher benötigst, bittest du das OS um den gewünschten Speicherplatz. Dieser wird dann, wenn er zur Verfügung steht für deine Daten reserviert. Solange du diese Daten nicht wieder frei gibst, kann kein anderes Programm/Process diesen Speicher benutzen.
Alles was nicht auf dem Stack liegt ist im Heap.
Dazu gehören grob alle Daten die über einen Funktionsaufruf hinaus zur Verfügung stehen, weil sie z.B. von mehreren Prozessen oder Threads gebraucht werden.
Das zum Heap ist sehr grob, ohne Paging/Swap oder Memory leak.
Zum meinem Problem:
Es steht nicht genug RAM zur Verfügung, obwohl 300MB absolut ungenutzt sind und ca. 1,2GB die zwar mal genutzt wurden aber wieder freigegeben wurden.Deshalb stellt sich die Frage warum brauch ioBroker um den JS Adapter zu starten mehr als 1,5GB RAM.
Und warum braucht er dies nur nachdem ich das Backup eingespielt habe, nicht aber wenn ich alles per Hand aufsetzt.
-
-
@smhrambo Danke für die Erklärung.
@smhrambo sagte in JS-Adapter startet ständig neu: heap out of memory:
obwohl 300MB absolut ungenutzt sind und ca. 1,2GB die zwar mal genutzt wurden aber wieder freigegeben wurden.
Deshalb stellt sich die Frage warum brauch ioBroker um den JS Adapter zu starten mehr als 1,5GB RAMist bei 1200 zwar wahrscheinlich eher unerheblich, aber ich war bisher der Meinung dass der mem free im mem available enthslten ist, also die beiden Werte nicht aufaddiert werden dürfen
beim Start von js werden allerdings alle startenden Skripte neu kompiliert
-
@homoran Kann gut sein, ich habe damals gelernt, das free der Speicher ist, der theoretisch aus dem System entfernt werden kann.
Aber wie du schon sagtest wären da immernoch 1,2GB.Das die Skripte neu kompiliert werden sollten, wenn sie aktiviert sind, weiss ich.
Aber nochmal, alle Skripte sind deaktiviert, alle haben ein rotes Play-Symbol.
Demensprechend sollte sie doch nicht neu kompiliert werden.Ich habe das gerade noch mal getestet, im aktuellen System ohne Backup, auf dem alles läuft.
Mit aktivierten Skripte finde ich mit Loglevel silly keine informationen ob die Skripte bei einem Neustart vom JS Adapter neu kompiliert werden.
Demenspechend kann ich darüber keine handfeste Aussage machen.Im aktuellen System ohne Backup mit 19 aktiven Adaptern (20 Prozesse) läuft es.
Ich habe nur keine Lust alle Einstellungen wieder von Hand vorzunehmen.
Das Problem liegt irgendwo in den wiederhergestellten Daten/Einstellungen und kann dementsprechend jederzeit wieder auftreten, wenn man die Ursache nicht kennt. -
@smhrambo sagte in JS-Adapter startet ständig neu: heap out of memory:
Das Problem liegt irgendwo in den wiederhergestellten Daten/Einstellungen und kann dementsprechend jederzeit wieder auftreten, wenn man die Ursache nicht kennt.
und deswegen hatte ich mich hier gemeldet und darauf hingewiesen dass die Meldung nicht unbedingt alleine durch den js-Adapter verursacht werden muss