Skip to content

v2.2.1

Choose a tag to compare

@github-actions github-actions released this 07 May 14:53
· 91 commits to main since this release
v2.2.1 — fix tinyice CPU pegged at 100% with active transcoders

Fix: StreamReader.Read in relay/io.go was hot-spinning when the Ogg
page-boundary scan couldn't advance. With a busy auto-transcoder pool
(3 source mounts × 3 mp3 bitrates = 9 transcoders + 3 manual = 12)
every transcoder spun on the buffer mutex, driving %sy to 73 % and
the load average above 30 with near-zero useful work — only 2.4 % us.

Yield to the signal-channel select when FindNextPageBoundary cannot
advance; once the source writes more bytes, signal fires and the read
resumes.

Empirically: tinyice CPU dropped from ~100 % to ~2.7 % on the same box
with the same transcoder count.

Also adds contrib/systemd/tinyice.service — opinionated drop-in unit
with Nice / CPUWeight / sandbox flags + CAP_NET_BIND_SERVICE so a
non-root tinyice user can bind ports 80 / 443.