Bug #1954
Post-processor command is blocking tuners
Start date:
2014-01-28
Due date:
% Done:
0%
Estimated time:
Found in version:
3.9.376~g04492fb
Affected Versions:
Description
Sometimes the forked Post-processor child processes doesn't terminate, which also successively leads to unavailable tuners.
This childs are all related to the dvr_thread:
cat /proc/17529/stat /proc/16825/stat /proc/16115/stat 17529 (dvr_thread) S 14841 14841 14841 0 -1 1077960768 125 0 0 0 0 0 0 0 20 0 1 0 101148959 1372413952 4566 18446744073709551615 1 1 0 0 0 0 2147203605 0 21738 18446744073709551615 0 0 17 1 0 0 0 0 0 0 0 0 0 0 0 0 0 16825 (dvr_thread) S 14841 14841 14841 0 -1 1077960768 125 0 0 0 0 0 0 0 20 0 1 0 100788959 1380806656 4553 18446744073709551615 1 1 0 0 0 0 2147203605 0 21738 18446744073709551615 0 0 17 1 0 0 0 0 0 0 0 0 0 0 0 0 0 16115 (dvr_thread) S 14841 14841 14841 0 -1 1077960768 149 0 0 0 0 0 0 0 20 0 1 0 100428959 1380536320 4560 18446744073709551615 1 1 0 0 0 0 2147203605 0 21738 18446744073709551615 0 0 17 1 0 0 0 0 0 0 0 0 0 0 0 0 0
The "spawn: Executing" log entry isn't printed in this case and the child processes are waiting.
sudo strace -p 17529 -p 16825 -p 16115 [pid 16115] futex(0x7ffa0ba666d4, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...> [pid 16825] futex(0x7ffa0ba666d4, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...> [pid 17529] futex(0x7ffa0ba666d4, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...>
The lack of the "spawn: Executing" log entry is actually strange, since it's produced by the child directly after the fork without waiting for any lock https://github.com/tvheadend/tvheadend/blob/master/src/spawn.c#L254.
History
Updated by Martin Mrvka almost 11 years ago
Forgot to mention, that killing those childs brings the system back to normal - tuners are available again.