Closed
Description
- I confirm that this is an issue rather than a question.
Bug report
I was calibrating my LED string via web interface and noticed it became unresponsive. Checked system logs and found some messages hinting towards libc heap corruption (see below).
Steps to reproduce
Invoke "colour calibration wizard" via web interface. Play with settings.
What is expected?
No errors in log, web interface and led string is responsive while changing calibration values.
What is actually happening?
In one case, changing RGB values for a color stopped making any effect on LED string.
In another case, web server thread is gone (i.e. hyperiond no longer listens on port 9100).
System logs show:
pi@HyperBian:~ $ journalctl | grep hyperiond
Dec 30 05:54:03 HyperBian hyperiond[466]: QIODevice::write (QTcpSocket): device not open
Dec 30 05:54:03 HyperBian hyperiond[466]: QIODevice::write (QTcpSocket): device not open
Dec 30 05:54:03 HyperBian hyperiond[466]: QIODevice::write (QTcpSocket): device not open
Dec 30 05:54:03 HyperBian hyperiond[466]: QIODevice::write (QTcpSocket): device not open
Dec 30 20:59:22 HyperBian hyperiond[466]: free(): corrupted unsorted chunks
Dec 30 20:59:22 HyperBian hyperiond[466]: Hyperion caught signal :SIGABRT
Dec 30 21:00:32 HyperBian kernel: [ 466] 0 466 184348 98890 591872 22888 0 hyperiond
Dec 30 21:00:32 HyperBian kernel: oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),global_oom,task_memcg=/,task=hyperiond,pid=466,uid=0
Dec 30 21:00:32 HyperBian kernel: Out of memory: Killed process 466 (hyperiond) total-vm:737392kB, anon-rss:393160kB, file-rss:2400kB, shmem-rss:0kB, UID:0 pgtables:578kB oom_score_adj:0
Dec 30 21:00:32 HyperBian kernel: oom_reaper: reaped process 466 (hyperiond), now anon-rss:0kB, file-rss:2400kB, shmem-rss:0kB
Dec 30 21:20:41 HyperBian hyperiond[1118]: 2020-12-30T21:20:41.393 hyperiond V4L2:/DEV/VI : <INFO> Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000
Dec 30 21:20:41 HyperBian hyperiond[1118]: 2020-12-30T21:20:41.400 hyperiond V4L2:/DEV/VI : <INFO> Signal threshold set to: {12, 12, 12}
Dec 30 21:31:57 HyperBian hyperiond[1118]: 2020-12-30T21:31:57.965 hyperiond V4L2:/DEV/VI : <INFO> available V4L2 devices:
Dec 30 21:31:57 HyperBian hyperiond[1118]: /dev/video0 UVC Camera (534d:2109): USB Vid
Dec 30 21:31:57 HyperBian hyperiond[1118]: /dev/video14 bcm2835-isp-capture0
Dec 30 21:31:57 HyperBian hyperiond[1118]: /dev/video15 bcm2835-isp-capture1
Dec 30 21:31:57 HyperBian hyperiond[1118]: 2020-12-30T21:31:57.971 hyperiond V4L2:/DEV/VI : <INFO> search for usable video devices
Dec 30 21:31:57 HyperBian hyperiond[1118]: 2020-12-30T21:31:57.994 hyperiond V4L2:/DEV/VI : <INFO> test v4l device: /dev/video0
Dec 30 21:31:58 HyperBian hyperiond[1118]: 2020-12-30T21:31:58.010 hyperiond V4L2:/DEV/VI : <INFO> found usable v4l2 device: /dev/video0 (UVC Camera (534d:2109): USB Vid)
Dec 30 21:31:58 HyperBian hyperiond[1118]: 2020-12-30T21:31:58.018 hyperiond V4L2:/DEV/VI : <INFO> Started
Dec 30 22:18:04 HyperBian hyperiond[1118]: malloc(): unsorted double linked list corrupted
Dec 30 22:18:04 HyperBian hyperiond[1118]: Hyperion caught signal :SIGABRT
hyperiond process is active (and LED lights react to changes in the v4l input), but it no longer listens on port 9100:
pi@HyperBian:~ $ netstat -lnp4
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
udp 0 0 0.0.0.0:5353 0.0.0.0:* -
udp 0 0 0.0.0.0:68 0.0.0.0:* -
udp 0 0 0.0.0.0:47467 0.0.0.0:* -
udp 0 0 0.0.0.0:1900 0.0.0.0:* -
pi@HyperBian:~ $ ps ax | grep hyper
1118 ? Ssl 40:48 /usr/bin/hyperiond
1268 pts/0 S+ 0:00 grep --color=auto hyper
System
Hyperion Server:
- Build: (HEAD detached at 83338dc3) (Paulchen Panther-ca50487e/83338dc3-1605733041)
- Build time: Nov 18 2020 21:32:08
- Git Remote: https://github.com/hyperion-project/hyperion.ng
- Version: 2.0.0-alpha.9
- UI Lang: auto (BrowserLang: en-US)
- UI Access: default
- Avail Capt: dispmanx,v4l2,framebuffer,qt
- Database: read/write
Hyperion Server OS:
- Distribution: HyperBian GNU/Linux 10 (buster)
- Architecture: arm
- CPU Model: ARMv6-compatible processor rev 7 (v6l)
- CPU Type: Raspberry Pi Zero W Rev 1.1
- CPU Revision: 9000c1
- CPU Hardware: BCM2835
- Kernel: linux (5.4.72+ (WS: 32))
- Qt Version: 5.7.1
- Python Version: 3.5.3
- Browser: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36