You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After a couple of days running this on my Rpi3 it stopped sending data to HA and I was not able to SSH into the instance. The PI is a fresh install only running this service.
In syslog I found these:
Sep 13 22:47:45 raspberrypi ams_han_decoder.pl[245]: Decoding HDLC frame failed: Can't pipe to mosquitto_pub -h 192.168.10.69 -s -t sensor/ams: Cannot allocate memory at /home/pi/ams-han-decoder/ams_han_decoder.pl line 115.
Sep 13 22:47:45 raspberrypi ams_han_decoder.pl[245]: #011main::send_json("{\x{a} \"data\" : {\x{a} \"power_active_import\" : {\x{a} \"des"...) called at /home/pi/ams-han-decoder/ams_han_decoder.pl line 434
Sep 13 22:47:45 raspberrypi ams_han_decoder.pl[245]: #011main::decode_hdlc_frame("\x{a0}*A\x{8}\x{83}\x{13}\x{4}\x{13}\x{e6}\x{e7}\x{0}\x{f}\@\x{0}\x{0}\x{0}\x{0}\x{1}\x{1}\x{2}\x{3}\x{9}\x{6}\x{1}\x{0}\x{1}\x{7}\x{0}\x{ff}\x{6}\x{0}\x{0}\x{5}\x{da}\x{2}\x{2}\x{f}\x{0}\x{16}\x{1b}J\x{ad}", 42, 0, 10) called at /home/pi/ams-han-decoder/ams_han_decoder.pl line 189
Sep 13 22:47:45 raspberrypi ams_han_decoder.pl[245]: #011eval {...} called at /home/pi/ams-han-decoder/ams_han_decoder.pl line 189
Sep 13 22:47:45 raspberrypi ams_han_decoder.pl[245]: #011main::parse_stream(GLOB(0x1f61648)) called at /home/pi/ams-han-decoder/ams_han_decoder.pl line 83
Sep 13 22:47:47 raspberrypi ams_han_decoder.pl[245]: Decoding HDLC frame failed: Can't pipe to mosquitto_pub -h 192.168.10.69 -s -t sensor/ams: Cannot allocate memory at /home/pi/ams-han-decoder/ams_han_decoder.pl line 115.
Sep 13 22:47:47 raspberrypi ams_han_decoder.pl[245]: #011main::send_json("{\x{a} \"data\" : {\x{a} \"power_active_import\" : {\x{a} \"des"...) called at /home/pi/ams-han-decoder/ams_han_decoder.pl line 434
After rebooting I then watched the processes in htop and could see the memory use of the service stedely raising, which leads me to the conclution that that a memory leak is the reason behind my crash.
I was able to solve this by adding auto restart of the service in systemd, but this should not be needed.
So the "working" systemd service now looks like this
@andwaal I've confirmed the issue as well, but I used the method mentioned in the README (systemd memory limit) to keep it under control.
The -k parameter helps mitigate the issue somewhat, as the issue occurs when the program mentioned by the -p parameter is executed/forked. If you don't use the -p parameter at all, then I think the issue shouldn't happen.
If you don't use -p then you'll have to find another way to pipe STDOUT (the JSON data) where you want it. If you come up with a better systemd unit file for doing that, then I'm very interested.
Finally, if you're able to figure out where the memory leak is actually coming from I would very much like to know.
Hi
First of all thanks for a good program!
After a couple of days running this on my Rpi3 it stopped sending data to HA and I was not able to SSH into the instance. The PI is a fresh install only running this service.
In syslog I found these:
The program is running as a service in systemd:
After rebooting I then watched the processes in htop and could see the memory use of the service stedely raising, which leads me to the conclution that that a memory leak is the reason behind my crash.
I was able to solve this by adding auto restart of the service in systemd, but this should not be needed.
So the "working" systemd service now looks like this
The text was updated successfully, but these errors were encountered: