Opened 14 years ago
Closed 14 years ago
Last modified 14 years ago
#8626 closed defect (fixed)
mythfrontend playback hangs
Reported by: | Owned by: | markk | |
---|---|---|---|
Priority: | minor | Milestone: | 0.24 |
Component: | MythTV - Video Playback | Version: | Master Head |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
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();
}
Attachments (3)
Change History (6)
Changed 14 years ago by
Attachment: | mythfrontend.log added |
---|
Changed 14 years ago by
Attachment: | NuppelVideoPlayer.patch added |
---|
Patch: This patch seems to fix the most often seen hang in this household
comment:1 Changed 14 years ago by
Owner: | changed from Janne Grunau to markk |
---|---|
Status: | new → accepted |
comment:2 Changed 14 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
comment:3 Changed 14 years ago by
Milestone: | unknown → 0.24 |
---|
MythFrontend logfile