[mythtv-commits] Ticket #13415: DVBChannel hangs during Close() and Open() due to corruption of is_open
MythTV
noreply at mythtv.org
Wed Feb 27 09:02:49 UTC 2019
#13415: DVBChannel hangs during Close() and Open() due to corruption of is_open
--------------------------------------------+--------------------------
Reporter: simonhyde | Owner: (none)
Type: Bug Report - Hang/Deadlock | Status: new
Priority: minor | Milestone: needs_triage
Component: MythTV - DVB | Version: Unspecified
Severity: medium | Keywords:
Ticket locked: 0 |
--------------------------------------------+--------------------------
When allowing multiple simultaneous recordings on a single tuner in DVB
mode and having multiple recordings ending at the same time, mythbackend
can hang.
This is because the is_open map of the "master" tuner is modified from
multiple threads simultaneously. This can cause the underlying RB tree
inside the QMap to get corrupted, such that the next time is_open is
accessed (by DVBChannel::Open or DVBChannel::Close, for example) QMap gets
stuck in an infinite loop.
Extending the hw_lock to cover is_open cures this, and I've submitted 2
pull requests on github to cover it
Against fixes/29:
https://github.com/MythTV/mythtv/pull/179
And ported forward to master:
https://github.com/MythTV/mythtv/pull/178
I have only built/tested the version against fixes/29, but I see no reason
the fix wouldn't work on master too.
--
Ticket URL: <https://code.mythtv.org/trac/ticket/13415>
MythTV <http://www.mythtv.org>
MythTV Media Center
More information about the mythtv-commits
mailing list