werthdavid / homebridge-website-to-camera

Homebridge plugin that displays a Website as virtual camera (intended for Google Maps Traffic)
MIT License
54 stars 7 forks source link

Memory leak in plugin? #51

Closed guitardoc closed 10 months ago

guitardoc commented 10 months ago

I use the plugin for quite some time. It seems to open up numerous instances of chromium after a while: This is a memory snapshot from 10 minutes after booting the Raspberry Pi:

`pi@raspberrypi:~ $ sudo smem -t -p PID User Command Swap USS PSS RSS 747 root /usr/bin/hciattach /dev/ser 0.00% 0.00% 0.00% 0.01% 559 root /usr/sbin/rngd -r /dev/hwrn 0.00% 0.00% 0.01% 0.04% 962 root /sbin/agetty -o -p -- \u -- 0.00% 0.01% 0.01% 0.05% 460 avahi avahi-daemon: chroot helper 0.00% 0.00% 0.01% 0.04% 438 root /usr/sbin/cron -f 0.00% 0.01% 0.01% 0.07% 481 nobody /usr/sbin/thd --triggers /e 0.00% 0.01% 0.01% 0.07% 3385 root sudo smem -t -p 0.00% 0.00% 0.01% 0.04% 955 root /usr/sbin/dhcpcd -w -q 0.00% 0.02% 0.02% 0.05% 441 root /bin/bash /usr/bin/deCONZ-u 0.00% 0.01% 0.02% 0.09% 3384 root sudo smem -t -p 0.00% 0.02% 0.03% 0.11% 439 messagebus /usr/bin/dbus-daemon --syst 0.00% 0.03% 0.04% 0.11% 437 avahi avahi-daemon: running [rasp 0.00% 0.03% 0.04% 0.11% 405 systemd-timesync /lib/systemd/systemd-timesy 0.00% 0.03% 0.04% 0.18% 1409 pi sshd: pi@pts/0 0.00% 0.02% 0.05% 0.18% 3313 pi sshd: pi@pts/1 0.00% 0.02% 0.05% 0.18% 467 root /lib/systemd/systemd-logind 0.00% 0.03% 0.05% 0.19% 459 root /usr/sbin/rsyslogd -n -iNON 0.00% 0.05% 0.05% 0.12% 678 root sshd: /usr/sbin/sshd -D [li 0.00% 0.03% 0.06% 0.23% 1321 root sshd: pi [priv] 0.00% 0.01% 0.06% 0.26% 3305 root sshd: pi [priv] 0.00% 0.01% 0.06% 0.26% 1410 pi -bash 0.00% 0.04% 0.06% 0.13% 3314 pi -bash 0.00% 0.04% 0.06% 0.13% 784 root /usr/libexec/bluetooth/blue 0.00% 0.05% 0.06% 0.15% 1751 homebridge /usr/lib/chromium/chromium 0.00% 0.01% 0.08% 0.43% 1390 pi (sd-pam) 0.00% 0.04% 0.08% 0.16% 662 root /sbin/wpa_supplicant -u -s 0.00% 0.08% 0.08% 0.17% 1389 pi /lib/systemd/systemd --user 0.00% 0.05% 0.09% 0.27% 447 polkitd /usr/lib/polkit-1/polkitd - 0.00% 0.07% 0.10% 0.23% 179 root /lib/systemd/systemd-udevd 0.00% 0.10% 0.10% 0.18% 1810 homebridge /usr/lib/chromium/chromium 0.00% 0.01% 0.12% 0.42% 1 root /sbin/init 0.00% 0.04% 0.13% 0.34% 665 root /usr/sbin/ModemManager 0.00% 0.15% 0.18% 0.31% 146 root /lib/systemd/systemd-journa 0.00% 0.31% 0.33% 0.46% 3386 root /usr/bin/python3 /usr/bin/s 0.00% 0.40% 0.40% 0.46% 2003 iobroker /opt/iobroker/node_modules/ 0.00% 0.41% 0.41% 0.41% 1771 homebridge /usr/lib/chromium/chromium 0.00% 0.11% 0.51% 2.19% 1856 homebridge /usr/lib/chromium/chromium 0.00% 0.12% 0.58% 2.34% 1749 homebridge /usr/lib/chromium/chromium 0.00% 0.01% 0.66% 3.26% 1748 homebridge /usr/lib/chromium/chromium 0.00% 0.02% 0.71% 3.25% 1699 iobroker io.discovery.0 0.00% 0.86% 0.90% 1.82% 1651 iobroker io.deconz.0 0.00% 0.95% 0.99% 1.92% 673 root /usr/sbin/tailscaled --stat 0.00% 1.01% 1.01% 1.01% 1981 iobroker io.simple-api.0 0.00% 0.98% 1.01% 1.94% 1629 iobroker io.backitup.0 0.00% 0.97% 1.02% 2.07% 2073 iobroker io.wiffi-wz.0 0.00% 0.99% 1.03% 1.95% 1510 homebridge homebridge: homebridge-shel 0.00% 0.90% 1.03% 2.01% 1636 iobroker io.cloud.0 0.00% 1.00% 1.04% 1.98% 1882 iobroker io.logparser.0 0.00% 1.00% 1.05% 2.10% 1768 homebridge /usr/lib/chromium/chromium 0.00% 0.40% 1.06% 3.62% 1921 iobroker io.shuttercontrol.0 0.00% 1.01% 1.06% 2.11% 2159 iobroker io.shuttercontrol.1 0.00% 1.01% 1.06% 2.11% 1379 iobroker io.modbus.0 0.00% 1.07% 1.10% 2.03% 2132 iobroker io.followthesun.0 0.00% 1.07% 1.13% 2.19% 1496 homebridge homebridge: @milo526/homebr 0.00% 1.00% 1.15% 2.17% 1871 iobroker io.info.0 0.00% 1.13% 1.17% 2.11% 1542 iobroker io.mqtt.0 0.00% 1.17% 1.21% 2.13% 442 pi /usr/bin/deCONZ -platform m 0.00% 1.17% 1.21% 1.48% 1497 homebridge homebridge: homebridge-ewel 0.00% 1.08% 1.22% 2.25% 2080 iobroker io.yahka.0 0.00% 1.19% 1.23% 2.17% 1706 homebridge /usr/lib/chromium/chromium 0.00% 0.61% 1.33% 4.02% 1505 homebridge homebridge: homebridge-webs 0.00% 1.23% 1.36% 2.34% 1211 iobroker io.telegram.0 0.00% 1.39% 1.45% 2.51% 1427 iobroker io.shelly.1 0.00% 1.42% 1.46% 2.38% 2058 iobroker io.web.0 0.00% 1.49% 1.53% 2.47% 1503 homebridge homebridge: homebridge-home 0.00% 1.51% 1.65% 2.66% 1728 iobroker io.eusec.0 0.00% 1.60% 1.66% 2.75% 1809 homebridge /usr/lib/chromium/chromium 0.00% 1.45% 1.71% 2.71% 2051 iobroker io.vw-connect.0 0.00% 1.73% 1.79% 2.76% 1300 iobroker io.tuya.0 0.00% 1.90% 1.95% 3.02% 1512 homebridge homebridge: homebridge-eufy 0.00% 1.99% 2.13% 3.14% 2777 homebridge /usr/lib/chromium/chromium 0.00% 1.61% 2.16% 4.13% 1138 homebridge hb-service 0.00% 2.06% 2.21% 3.22% 1323 homebridge homebridge 0.00% 2.19% 2.33% 3.33% 1077 iobroker io.admin.0 0.00% 3.20% 3.26% 4.33% 1150 iobroker io.javascript.0 0.00% 3.68% 3.74% 4.81% 1291 iobroker io.shelly.0 0.00% 3.93% 3.97% 4.89% 666 iobroker iobroker.js-controller 0.00% 9.33% 9.40% 10.49%

77 9 0.00% 64.68% 72.14% 124.78% `

In it, you will find 10 instances of /usr/lib/chromium/chromium.

This is a memory snapshot about two hours later:

`pi@raspberrypi:~ $ sudo smem -t -p PID User Command Swap USS PSS RSS 25359 root sleep 10 0.00% 0.00% 0.00% 0.04% 747 root /usr/bin/hciattach /dev/ser 0.00% 0.00% 0.00% 0.01% 559 root /usr/sbin/rngd -r /dev/hwrn 0.00% 0.00% 0.01% 0.04% 962 root /sbin/agetty -o -p -- \u -- 0.00% 0.01% 0.01% 0.05% 460 avahi avahi-daemon: chroot helper 0.00% 0.00% 0.01% 0.04% 438 root /usr/sbin/cron -f 0.00% 0.01% 0.01% 0.07% 481 nobody /usr/sbin/thd --triggers /e 0.00% 0.01% 0.01% 0.07% 25370 root sudo smem -t -p 0.00% 0.00% 0.01% 0.04% 955 root /usr/sbin/dhcpcd -w -q 0.00% 0.02% 0.02% 0.05% 441 root /bin/bash /usr/bin/deCONZ-u 0.00% 0.01% 0.02% 0.09% 25369 root sudo smem -t -p 0.00% 0.02% 0.03% 0.11% 439 messagebus /usr/bin/dbus-daemon --syst 0.00% 0.03% 0.04% 0.11% 437 avahi avahi-daemon: running [rasp 0.00% 0.03% 0.04% 0.11% 405 systemd-timesync /lib/systemd/systemd-timesy 0.00% 0.03% 0.04% 0.18% 1409 pi sshd: pi@pts/0 0.00% 0.02% 0.04% 0.18% 3313 pi sshd: pi@pts/1 0.00% 0.02% 0.04% 0.18% 3431 pi sshd: pi@pts/2 0.00% 0.02% 0.04% 0.18% 1321 root sshd: pi [priv] 0.00% 0.01% 0.05% 0.26% 3305 root sshd: pi [priv] 0.00% 0.01% 0.05% 0.26% 3424 root sshd: pi [priv] 0.00% 0.01% 0.05% 0.26% 467 root /lib/systemd/systemd-logind 0.00% 0.03% 0.05% 0.19% 678 root sshd: /usr/sbin/sshd -D [li 0.00% 0.03% 0.05% 0.23% 459 root /usr/sbin/rsyslogd -n -iNON 0.00% 0.05% 0.05% 0.12% 1410 pi -bash 0.00% 0.04% 0.05% 0.13% 3314 pi -bash 0.00% 0.04% 0.05% 0.13% 3432 pi -bash 0.00% 0.04% 0.05% 0.13% 1751 homebridge /usr/lib/chromium/chromium 0.00% 0.01% 0.06% 0.43% 784 root /usr/libexec/bluetooth/blue 0.00% 0.05% 0.06% 0.15% 662 root /sbin/wpa_supplicant -u -s 0.00% 0.08% 0.08% 0.17% 1390 pi (sd-pam) 0.00% 0.04% 0.09% 0.16% 1389 pi /lib/systemd/systemd --user 0.00% 0.05% 0.09% 0.27% 447 polkitd /usr/lib/polkit-1/polkitd - 0.00% 0.07% 0.10% 0.23% 179 root /lib/systemd/systemd-udevd 0.00% 0.10% 0.10% 0.18% 1810 homebridge /usr/lib/chromium/chromium 0.00% 0.01% 0.12% 0.42% 1 root /sbin/init 0.00% 0.04% 0.13% 0.34% 665 root /usr/sbin/ModemManager 0.00% 0.15% 0.18% 0.31% 146 root /lib/systemd/systemd-journa 0.00% 0.32% 0.33% 0.47% 1771 homebridge /usr/lib/chromium/chromium 0.00% 0.11% 0.35% 2.19% 1856 homebridge /usr/lib/chromium/chromium 0.00% 0.12% 0.39% 2.34% 2003 iobroker /opt/iobroker/node_modules/ 0.00% 0.41% 0.41% 0.41% 25371 root /usr/bin/python3 /usr/bin/s 0.00% 0.41% 0.42% 0.48% 1749 homebridge /usr/lib/chromium/chromium 0.00% 0.01% 0.60% 3.26% 1748 homebridge /usr/lib/chromium/chromium 0.00% 0.02% 0.66% 3.25% 673 root /usr/sbin/tailscaled --stat 0.00% 0.93% 0.93% 0.93% 1699 iobroker io.discovery.0 0.00% 0.93% 0.97% 1.90% 1768 homebridge /usr/lib/chromium/chromium 0.00% 0.42% 1.02% 3.66% 1629 iobroker io.backitup.0 0.00% 1.03% 1.08% 2.13% 1636 iobroker io.cloud.0 0.00% 1.07% 1.11% 2.05% 1882 iobroker io.logparser.0 0.00% 1.09% 1.14% 2.19% 1981 iobroker io.simple-api.0 0.00% 1.14% 1.18% 2.11% 2132 iobroker io.followthesun.0 0.00% 1.15% 1.20% 2.26% 442 pi /usr/bin/deCONZ -platform m 0.00% 1.17% 1.21% 1.48% 1651 iobroker io.deconz.0 0.00% 1.20% 1.24% 2.18% 1542 iobroker io.mqtt.0 0.00% 1.20% 1.24% 2.17% 1510 homebridge homebridge: homebridge-shel 0.00% 1.14% 1.27% 2.25% 2073 iobroker io.wiffi-wz.0 0.00% 1.25% 1.29% 2.21% 1871 iobroker io.info.0 0.00% 1.25% 1.29% 2.23% 2080 iobroker io.yahka.0 0.00% 1.25% 1.29% 2.23% 2159 iobroker io.shuttercontrol.1 0.00% 1.26% 1.31% 2.36% 1496 homebridge homebridge: @milo526/homebr 0.00% 1.18% 1.32% 2.34% 1706 homebridge /usr/lib/chromium/chromium 0.00% 0.70% 1.34% 4.12% 22282 homebridge /usr/lib/chromium/chromium 0.00% 0.90% 1.35% 3.78% 1379 iobroker io.modbus.0 0.00% 1.32% 1.35% 2.28% 3656 homebridge /usr/lib/chromium/chromium 0.00% 0.92% 1.36% 3.79% 2777 homebridge /usr/lib/chromium/chromium 0.00% 0.93% 1.36% 3.78% 1921 iobroker io.shuttercontrol.0 0.00% 1.34% 1.40% 2.45% 1497 homebridge homebridge: homebridge-ewel 0.00% 1.25% 1.40% 2.42% 25360 homebridge /usr/lib/chromium/chromium 0.00% 1.07% 1.40% 3.60% 1505 homebridge homebridge: homebridge-webs 0.00% 1.40% 1.53% 2.51% 1211 iobroker io.telegram.0 0.00% 1.52% 1.58% 2.64% 1728 iobroker io.eusec.0 0.00% 1.74% 1.80% 2.89% 1427 iobroker io.shelly.1 0.00% 1.82% 1.86% 2.79% 1503 homebridge homebridge: homebridge-home 0.00% 1.77% 1.91% 2.92% 1809 homebridge /usr/lib/chromium/chromium 0.00% 1.61% 1.95% 3.09% 2051 iobroker io.vw-connect.0 0.00% 1.91% 1.97% 2.94% 2058 iobroker io.web.0 0.00% 2.08% 2.12% 3.06% 1512 homebridge homebridge: homebridge-eufy 0.00% 2.18% 2.32% 3.33% 1300 iobroker io.tuya.0 0.00% 2.33% 2.39% 3.46% 1138 homebridge hb-service 0.00% 2.27% 2.41% 3.42% 1323 homebridge homebridge 0.00% 2.34% 2.48% 3.47% 1077 iobroker io.admin.0 0.00% 2.49% 2.55% 3.63% 1150 iobroker io.javascript.0 0.00% 3.62% 3.68% 4.74% 1291 iobroker io.shelly.0 0.00% 4.98% 5.02% 5.95% 666 iobroker iobroker.js-controller 0.00% 7.77% 7.84% 8.93%

84 9 0.00% 71.44% 79.49% 140.98% `

Already 13 instances of /usr/lib/chromium/chromium are open now and they use more memory than before.

The Website to Camera plugin is the only application that uses chromium on my Raspberry Pi, so I think there may be some memory leak in it or in Chromium itself. Could you please have a look at it?

Thank you very much.

guitardoc commented 10 months ago

On second thought this is probably the normal behaviour of Linux memory management. It can be closed I think.