[mythtv-commits] Ticket #8626: mythfrontend playback hangs

MythTV mythtv at cvs.mythtv.org
Wed Jun 30 08:23:51 UTC 2010


#8626: mythfrontend playback hangs
---------------------------------------+------------------------------------
 Reporter:  tomimo@…                   |       Owner:  janne     
     Type:  defect                     |      Status:  new       
 Priority:  minor                      |   Milestone:  unknown   
Component:  MythTV - Video Playback    |     Version:  Trunk Head
 Severity:  medium                     |     Mlocked:  0         
---------------------------------------+------------------------------------
 The latest trunk version #25218 seems to have problems with its current
 decoder locking scheme. It seems that I can pretty realiably hang the
 frontend every time by trying to playback a single (specific) recorded
 program via diskless MythFrontend node.
 The problem does exist in two different diskless nodes that are
 used for playback in this household (ie. even though the hardware's
 are 2.8Ghz/Athlon/32-bit and Athlon X2/3800Mhz, they are on slow side
 performance wise).

 The symptom is always the following message looping eternally in the
 frontend log:

 2010-06-30 10:19:41.431 NVP(0), Warning: Waited 100ms for decoder to
 unpause

 To me it looks like that the following code in NuppelVideoPlayer.cpp might
 fail, in case the condition wake up signal is sent before the waiting
 thread has had the chance to call the condition.wait(). If that happens,
 the waiting thread will never break from the while loop.

 void NuppelVideoPlayer::UnpauseDecoder(void)
 {
     decoderPauseLock.lock();

     if (QThread::currentThread() == (QThread*)decoderThread)
     {
         decoderPaused = false;
         decoderThreadUnpause.wakeAll();
         decoderPauseLock.unlock();
         return;
     }

     unpauseDecoder = true;
     while (!decoderThreadUnpause.wait(&decoderPauseLock, 100))
         VERBOSE(VB_IMPORTANT, LOC_WARN + "Waited 100ms for decoder to
 unpause");
     unpauseDecoder = false;
     decoderPauseLock.unlock();
 }

-- 
Ticket URL: <http://svn.mythtv.org/trac/ticket/8626>
MythTV <http://www.mythtv.org/>
MythTV


More information about the mythtv-commits mailing list