hyperion-project / hyperion.ng

The successor to Hyperion aka Hyperion Next Generation
https://hyperion-project.org/
MIT License
3.11k stars 384 forks source link

Crash when sending commands to TCP socket but not reading responses #1447

Closed tremby closed 1 year ago

tremby commented 2 years ago

Bug report

Steps to reproduce

Send a lot of commands to the TCP socket and don't receive or read the responses. The commands I'm sending are color commands, each with 10 colors, and I'm sending dozens per second.

What is expected?

I'm not really sure, but not a crash. Likely I'm doing things wrong and I am supposed to receive all responses, but regardless it shouldn't cause a crash.

What is actually happening?

A buffer in Hyperion overfills or something, and it crashes.

Excerpt from log:

Mar 24 02:53:15 loungebox hyperiond[5015]: malloc(): unsorted double linked list corrupted
Mar 24 02:53:15 loungebox hyperiond[5015]: Hyperion caught signal :SIGABRT
Mar 24 02:53:15 loungebox hyperiond[5015]: QJson: Document too large to store in data structure
Mar 24 02:54:18 loungebox hyperiond[5015]: Hyperion caught signal :SIGTERM
Mar 24 02:54:23 loungebox systemd[1]: hyperion@pi.service: State 'stop-sigterm' timed out. Killing.
Mar 24 02:54:23 loungebox systemd[1]: hyperion@pi.service: Killing process 5015 (hyperiond) with signal SIGKILL.
Mar 24 02:54:23 loungebox systemd[1]: hyperion@pi.service: Main process exited, code=killed, status=9/KILL
Mar 24 02:54:23 loungebox systemd[1]: hyperion@pi.service: Failed with result 'timeout'.
Mar 24 02:56:14 loungebox hyperiond[9970]: corrupted size vs. prev_size
Mar 24 02:56:14 loungebox hyperiond[9970]: Hyperion caught signal :SIGABRT
Mar 24 02:57:10 loungebox hyperiond[9970]: Hyperion caught signal :SIGTERM
Mar 24 02:57:15 loungebox systemd[1]: hyperion@pi.service: State 'stop-sigterm' timed out. Killing.
Mar 24 02:57:15 loungebox systemd[1]: hyperion@pi.service: Killing process 9970 (hyperiond) with signal SIGKILL.
Mar 24 02:57:15 loungebox systemd[1]: hyperion@pi.service: Main process exited, code=killed, status=9/KILL
Mar 24 02:57:15 loungebox systemd[1]: hyperion@pi.service: Failed with result 'timeout'.

System

Hyperion Server: 
- Build:           (HEAD detached at 2.0.12) (GitHub-dc6aa4d/df14958-1637501177)
- Build time:      Nov 21 2021 17:25:08
- Git Remote:      https://github.com/hyperion-project/hyperion.ng
- Version:         2.0.12
- UI Lang:         en (BrowserLang: en)
- UI Access:       default
- Avail Capt:      dispmanx,v4l2,framebuffer,qt
- Config path:     /home/pi/.hyperion
- Database:        read/write

Hyperion Server OS: 
- Distribution:   Raspbian GNU/Linux 10 (buster)
- Architecture:   arm
- CPU Model:      ARMv7 Processor rev 3 (v7l)
- CPU Type:       Raspberry Pi 4 Model B Rev 1.4
- CPU Revision:   b03114
- CPU Hardware:   BCM2711
- Kernel:         linux (5.10.103-v7l+ (WS: 32))
- Root/Admin:     false
- Qt Version:     5.11.3
- Python Version: 3.7.3
- Browser:        Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:98.0) Gecko/20100101 Firefox/98.0
Lord-Grey commented 1 year ago

Closing as Duplicate of #1448