[mythtv-commits] Ticket #10870: Race condition between StreamHandler::RemoveListener and StreamHandler::AddListener

MythTV noreply at mythtv.org
Fri Jun 29 10:58:48 UTC 2012


#10870: Race condition between StreamHandler::RemoveListener and
StreamHandler::AddListener
-------------------------------------+-------------------------------------
 Reporter:  roger@…                  |           Type:  Bug Report -
   Status:  new                      |  Hang/Deadlock
Milestone:  unknown                  |       Priority:  minor
  Version:  0.25-fixes               |      Component:  MythTV - General
 Keywords:  AddListener              |       Severity:  medium
  RemoveListener                     |  Ticket locked:  0
-------------------------------------+-------------------------------------
 There is a race condition when a thread calls StreamHandler::AddListener
 when a parallel executing thread has already called
 AddListener::RemoveListener. This results in both threads being deadlocked
 and never returning from these calls. The error message "Programmer Error:
 Start called before Stop finished" is also logged. The symptoms of this
 problem are recordings appearing in the completed recordings list which
 either have no file associated with them or a file with only a few bytes
 (usually 326 I think) in it.

 I have attached a log showing this problem. This log is from mythbackend
 running on a quad core machine.

 The backend is attempting to record two programs with the same start time
 on the same DTV multiplex. The capture cards are configured to allow
 multiple simultaneous recordings. The salient log lines are at

 2012-06-26 21:00:02.354383 I [2501/2511] TVRecEvent streamhandler.cpp:97
 (RemoveListener) - SH(/dev/dvb/adapter201/frontend0):
 RemoveListener(0xffffffffa1031e80) -- begin

 The thread 2511 will end up blocked in StreamHandler::Stop and never
 return, and

 2012-06-26 21:00:02.369020 I [2501/2706] RecThread streamhandler.cpp:45
 (AddListener) - SH(/dev/dvb/adapter201/frontend0): AddListener(0x972e448)
 -- begin

 The thread 2706 will end up blocked in StreamHandler:Start and never
 return.

-- 
Ticket URL: <http://code.mythtv.org/trac/ticket/10870>
MythTV <http://code.mythtv.org/trac>
MythTV Media Center


More information about the mythtv-commits mailing list