keep wedged or shared-identity motion searches from locking out users

A stalled VOD read blocked the runner forever, so a wedged job held its user and global slot until restart, and on installs without per-user identity (internal port, or auth disabled without a proxy user header) everyone shared one per-user slot. VOD ffmpeg and ffprobe inputs now use a 30 s rw_timeout, a cancel also drops queued parallel runs, a cancelled job stops counting after 60 s, and the per-user limit only applies when the request carries a real username. A failed runner start also stops its requestor.
This commit is contained in:
Josh Hawkins
2026-10-18 12:28:17 -05:00
parent 1eeb293f65
commit 1683d4a0cc
5 changed files with 93 additions and 14 deletions
@@ -101,6 +101,7 @@ class TestVodDecodeCommand(unittest.TestCase):
joined = " ".join(cmd)
self.assertIn("-skip_frame nokey", joined)
self.assertIn("-protocol_whitelist pipe,file,http,tcp", joined)
self.assertLess(cmd.index("-rw_timeout"), cmd.index("-i"))
self.assertIn(f"-i {self.URL}", joined)
self.assertIn("crop=100:80:10:20", joined)
self.assertIn("scale=50:40", joined)