Opened 11 years ago

Closed 10 years ago

#5469 closed defect (fixed)

MythTV hangs sometimes playing a DVD

Reported by: mabstyle@… Owned by: skamithi
Priority: minor Milestone: unknown
Component: MythTV - DVD Playback Version: 0.21-fixes
Severity: medium Keywords:
Cc: Ticket locked: no

Description

When I play a certain DVD (All About Eve, Criterion Collection) it usually displays the root menu, however occasionally I will get a black screen and mythtv will be hung. I have to remote login to kill mythfrontend.

Last few lines of the log file:

2008-06-24 19:49:07.086 AFD: Warning, video codec 0x1ba70d0 id(MPEG2VIDEO) type (Video) already open.
2008-06-24 19:49:07.188 AFD: codec AC3 has 0 channels
2008-06-24 19:49:07.189 AFD: Opened codec 0x7f19e39f50d0, id(AC3) type(Audio)
2008-06-24 19:49:07.191 Opening audio device '/dev/dsp'. ch 6(2) sr 48000
2008-06-24 19:49:07.191 Opening OSS audio device '/dev/dsp'.
2008-06-24 19:49:07.193 NVP: Enabling Audio
2008-06-24 19:49:07.227 Opening audio device '/dev/dsp'. ch 2(2) sr 48000
2008-06-24 19:49:07.227 Opening OSS audio device '/dev/dsp'.
libdvdnav: RANDOM or SHUFFLE titles are NOT hand

Backtrace of the threads. It seems to be some sort of deadlock.

0x00007f19ef6821f1 in nanosleep () from /lib/libc.so.6
(gdb) i thr
  11 Thread 0x412aa950 (LWP 10661)  0x00007f19f00e8fad in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
  10 Thread 0x41e26950 (LWP 10662)  0x00007f19f00e8fad in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
  9 Thread 0x427e7950 (LWP 10663)  0x00007f19ef6aceb2 in select ()
   from /lib/libc.so.6
  8 Thread 0x42fe8950 (LWP 10668)  0x00007f19f00e8d29 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
  7 Thread 0x437e9950 (LWP 10669)  0x00007f19f00eb7db in read ()
   from /lib/libpthread.so.0
  6 Thread 0x447eb950 (LWP 10677)  0x00007f19ef6aceb2 in select ()
   from /lib/libc.so.6
  5 Thread 0x43fea950 (LWP 10748)  0x00007f19f00e5715 in pthread_join ()
   from /lib/libpthread.so.0
  4 Thread 0x44fec950 (LWP 10749)  0x00007f19ef6821f1 in nanosleep ()
   from /lib/libc.so.6
  3 Thread 0x45fee950 (LWP 10750)  0x00007f19ef6821f1 in nanosleep ()
   from /lib/libc.so.6
  2 Thread 0x457ed950 (LWP 10752)  0x00007f19ef6ac437 in ioctl ()
   from /lib/libc.so.6
* 1 Thread 0x7f19f25eb730 (LWP 10660)  0x00007f19ef6821f1 in nanosleep ()
   from /lib/libc.so.6
(gdb) bt
#0  0x00007f19ef6821f1 in nanosleep () from /lib/libc.so.6
#1  0x00007f19ef6ad694 in usleep () from /lib/libc.so.6
#2  0x00007f19f1cbdc36 in TV::StartTV () from /usr/lib/libmythtv-0.21.so.0
#3  0x00000000004254d4 in ?? ()
#4  0x00007f19f0d7a912 in MythMainWindow::HandleMedia ()
   from /usr/lib/libmythui-0.21.so.0
#5  0x00007f19dd928a2c in ?? () from /usr/lib/mythtv/plugins/libmythvideo.so
#6  0x00007f19f0d788ee in MythMainWindow::ExitToMainMenu ()
   from /usr/lib/libmythui-0.21.so.0
#7  0x00007f19f0d78dea in MythMainWindow::customEvent ()
   from /usr/lib/libmythui-0.21.so.0
#8  0x00007f19f066a9fb in QObject::event () from /usr/lib/libqt-mt.so.3
#9  0x00007f19f069bdf3 in QWidget::event () from /usr/lib/libqt-mt.so.3
#10 0x00007f19f0615953 in QApplication::internalNotify ()
   from /usr/lib/libqt-mt.so.3
#11 0x00007f19f061662e in QApplication::notify () from /usr/lib/libqt-mt.so.3
#12 0x00007f19f061703a in QApplication::sendPostedEvents ()
   from /usr/lib/libqt-mt.so.3
#13 0x00007f19f05cb9dd in QEventLoop::processEvents ()
   from /usr/lib/libqt-mt.so.3
#14 0x00007f19f062a001 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#15 0x00007f19f0629eb2 in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#16 0x000000000042d0e0 in ?? ()
---Type <return> to continue, or q <return> to quit---q
Quit
(gdb) thr 2
[Switching to thread 2 (Thread 0x457ed950 (LWP 10752))]#0  0x00007f19ef6ac437 in ioctl () from /lib/libc.so.6
(gdb) bt
#0  0x00007f19ef6ac437 in ioctl () from /lib/libc.so.6
#1  0x00007f19f12504bd in AudioOutputOSS::getSpaceOnSoundcard ()
   from /usr/lib/libmyth-0.21.so.0
#2  0x00007f19f10c228a in AudioOutputBase::OutputAudioLoop ()
   from /usr/lib/libmyth-0.21.so.0
#3  0x00007f19f10c4978 in AudioOutputBase::kickoffOutputAudioLoop ()
   from /usr/lib/libmyth-0.21.so.0
#4  0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0
#5  0x00007f19ef6b378d in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()
(gdb) thr 3
[Switching to thread 3 (Thread 0x45fee950 (LWP 10750))]#0  0x00007f19ef6821f1 in nanosleep () from /lib/libc.so.6
(gdb) bt
#0  0x00007f19ef6821f1 in nanosleep () from /lib/libc.so.6
#1  0x00007f19ef6ad694 in usleep () from /lib/libc.so.6
#2  0x00007f19f1d0b794 in NuppelVideoPlayer::OutputVideoLoop ()
   from /usr/lib/libmythtv-0.21.so.0
#3  0x00007f19f1d0bec8 in NuppelVideoPlayer::kickoffOutputVideoLoop ()
   from /usr/lib/libmythtv-0.21.so.0
#4  0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0
#5  0x00007f19ef6b378d in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()
(gdb) thr 4
[Switching to thread 4 (Thread 0x44fec950 (LWP 10749))]#0  0x00007f19ef6821f1 in nanosleep () from /lib/libc.so.6
(gdb) bt
#0  0x00007f19ef6821f1 in nanosleep () from /lib/libc.so.6
#1  0x00007f19ef6ad694 in usleep () from /lib/libc.so.6
#2  0x00007f19f10ba280 in AudioOutputBase::Drain ()
   from /usr/lib/libmyth-0.21.so.0
#3  0x00007f19f1cfe0bb in NuppelVideoPlayer::AddAudioData ()
   from /usr/lib/libmythtv-0.21.so.0
#4  0x00007f19f1d72ba2 in AvFormatDecoder::GetFrame ()
   from /usr/lib/libmythtv-0.21.so.0
#5  0x00007f19f1d077b0 in NuppelVideoPlayer::GetFrameNormal ()
   from /usr/lib/libmythtv-0.21.so.0
#6  0x00007f19f1d07d21 in NuppelVideoPlayer::GetFrame ()
   from /usr/lib/libmythtv-0.21.so.0
#7  0x00007f19f1d1b732 in NuppelVideoPlayer::StartPlaying ()
   from /usr/lib/libmythtv-0.21.so.0
#8  0x00007f19f1c835f9 in SpawnDecode () from /usr/lib/libmythtv-0.21.so.0
#9  0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0
#10 0x00007f19ef6b378d in clone () from /lib/libc.so.6
#11 0x0000000000000000 in ?? ()
(gdb) thr 5
[Switching to thread 5 (Thread 0x43fea950 (LWP 10748))]#0  0x00007f19f00e5715 in pthread_join () from /lib/libpthread.so.0
(gdb) bt
#0  0x00007f19f00e5715 in pthread_join () from /lib/libpthread.so.0
#1  0x00007f19f1c831e2 in TV::TeardownPlayer ()
   from /usr/lib/libmythtv-0.21.so.0
#2  0x00007f19f1c94e74 in TV::StopStuff () from /usr/lib/libmythtv-0.21.so.0
#3  0x00007f19f1cb69b6 in TV::HandleStateChange ()
   from /usr/lib/libmythtv-0.21.so.0
#4  0x00007f19f1cdf461 in TV::RunTV () from /usr/lib/libmythtv-0.21.so.0
#5  0x00007f19f1ce0359 in TV::EventThread () from /usr/lib/libmythtv-0.21.so.0
#6  0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0
#7  0x00007f19ef6b378d in clone () from /lib/libc.so.6
#8  0x0000000000000000 in ?? ()
(gdb) thr 6
[Switching to thread 6 (Thread 0x447eb950 (LWP 10677))]#0  0x00007f19ef6aceb2 in select () from /lib/libc.so.6
(gdb) bt
#0  0x00007f19ef6aceb2 in select () from /lib/libc.so.6
#1  0x00007f19f118c3ea in MythSocket::readyReadThread ()
   from /usr/lib/libmyth-0.21.so.0
#2  0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0
#3  0x00007f19ef6b378d in clone () from /lib/libc.so.6
#4  0x0000000000000000 in ?? ()
(gdb) thr 7
[Switching to thread 7 (Thread 0x437e9950 (LWP 10669))]#0  0x00007f19f00eb7db in read () from /lib/libpthread.so.0
(gdb) bt
#0  0x00007f19f00eb7db in read () from /lib/libpthread.so.0
#1  0x00007f19ecc4c2bc in lirc_nextcode () from /usr/lib/liblirc_client.so.0
#2  0x00007f19f12713e0 in LircClient::Process ()
   from /usr/lib/libmyth-0.21.so.0
#3  0x00007f19f0d81c88 in ?? () from /usr/lib/libmythui-0.21.so.0
#4  0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0
#5  0x00007f19ef6b378d in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()
(gdb) thr 8
[Switching to thread 8 (Thread 0x42fe8950 (LWP 10668))]#0  0x00007f19f00e8d29 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
(gdb) bt
#0  0x00007f19f00e8d29 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/libpthread.so.0
#1  0x00007f19f08b8e62 in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3
#2  0x00007f19f11146ea in MythContext::waitPrivRequest ()
   from /usr/lib/libmyth-0.21.so.0
#3  0x0000000000427476 in ?? ()
#4  0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0
#5  0x00007f19ef6b378d in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()
(gdb) thr 9
[Switching to thread 9 (Thread 0x427e7950 (LWP 10663))]#0  0x00007f19ef6aceb2 in select () from /lib/libc.so.6
(gdb) bt
#0  0x00007f19ef6aceb2 in select () from /lib/libc.so.6
#1  0x00007f19f157b910 in SSDP::run () from /usr/lib/libmythupnp-0.21.so.0
#2  0x00007f19f060f64b in QThreadInstance::start () from /usr/lib/libqt-mt.so.3
#3  0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0
#4  0x00007f19ef6b378d in clone () from /lib/libc.so.6
#5  0x0000000000000000 in ?? ()
(gdb) thr 10
[Switching to thread 10 (Thread 0x41e26950 (LWP 10662))]#0  0x00007f19f00e8fad in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
(gdb) bt
#0  0x00007f19f00e8fad in pthread_cond_timedwait@@GLIBC_2.3.2 ()
   from /lib/libpthread.so.0
#1  0x00007f19f060f2d5 in ?? () from /usr/lib/libqt-mt.so.3
#2  0x00007f19f060f42e in QThread::msleep () from /usr/lib/libqt-mt.so.3
#3  0x00007f19f157d331 in TaskQueue::run () from /usr/lib/libmythupnp-0.21.so.0
#4  0x00007f19f060f64b in QThreadInstance::start () from /usr/lib/libqt-mt.so.3
#5  0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0
#6  0x00007f19ef6b378d in clone () from /lib/libc.so.6
#7  0x0000000000000000 in ?? ()
(gdb) thr 11
[Switching to thread 11 (Thread 0x412aa950 (LWP 10661))]#0  0x00007f19f00e8fad in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
(gdb) bt
#0  0x00007f19f00e8fad in pthread_cond_timedwait@@GLIBC_2.3.2 ()
   from /lib/libpthread.so.0
#1  0x00007f19f08b8e09 in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3
#2  0x00007f19f158ce7f in CEvent::WaitForEvent ()
   from /usr/lib/libmythupnp-0.21.so.0
#3  0x00007f19f158dd94 in WorkerThread::run ()
   from /usr/lib/libmythupnp-0.21.so.0
#4  0x00007f19f060f64b in QThreadInstance::start () from /usr/lib/libqt-mt.so.3
#5  0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0
#6  0x00007f19ef6b378d in clone () from /lib/libc.so.6
#7  0x0000000000000000 in ?? ()

Attachments (3)

philstone-exited.log (202.5 KB) - added by bullestock@… 11 years ago.
Frontend log from DVD playback
loony-vol5-disc1.errors (63.6 KB) - added by mabstyle@… 11 years ago.
loony tunes dvd mythfrontend -v playback log
dvd-stillframe-fix.diff (1.5 KB) - added by ttmesterr@… 10 years ago.
Potential fix for DVD still frames causing the player to get hung.

Download all attachments as: .zip

Change History (13)

comment:1 Changed 11 years ago by skamithi

Status: newinfoneeded_new

please run the latest 0.21 fixes. if the problem is still reproducible, get the "mythfrontend -v playback" from the beginning of dvd playback to when it hangs. then gzip/bzip the output and attach it to the ticket.

comment:2 Changed 11 years ago by bullestock@…

I have a similar problem with a Harry Potter DVD (original) - plays fine in a standalone DVD player. Symptom: At a certain place, the picture freezes, and MythTV stops responding to keypresses. After a few minutes, MythTV returns to the DVD playback menu.

Attaching frontend log.

comment:3 Changed 11 years ago by stuartm

Still waiting on a frontend log with -v playback for this issue.

comment:4 Changed 11 years ago by stuartm

Component: mythtvDVD Playback
Owner: changed from Isaac Richards to skamithi
Status: infoneeded_newnew

Changed 11 years ago by bullestock@…

Attachment: philstone-exited.log added

Frontend log from DVD playback

comment:5 Changed 11 years ago by bullestock@…

Sorry, I apparently forgot to attach the file the last time. Couldn't find it, so had to create another one.

I'm running 0-21-fixes revision 18322.

comment:6 Changed 11 years ago by Dibblah

Status: newassigned

Changed 11 years ago by mabstyle@…

Attachment: loony-vol5-disc1.errors added

loony tunes dvd mythfrontend -v playback log

comment:7 Changed 11 years ago by mabstyle@…

I've attached another mythfrontend -v playback log. This is from 0.21-fixes revision 19344. It is from Loony Tunes Volume 5 disc1, and hangs on the still frame that warns "these cartoons are a product of their time..."

Please let me know if there is anything else I can do to help track this down. I like that 0.21 has a built-in DVD player, especially with the bookmark feature, but MANY DVDs don't play properly with it, compared to 0.20, so it hasn't been very gf-friendly :)

Changed 10 years ago by ttmesterr@…

Attachment: dvd-stillframe-fix.diff added

Potential fix for DVD still frames causing the player to get hung.

comment:8 Changed 10 years ago by ttmesterr@…

I have attached a patch to potentially resolve an issue that causes the NuppelVideoPlayer? decoder thread to get stuck in the AudioOutputBase::Drain() function while the audio output thread is paused.

The first part of the patch allows the audio to be un-paused when prebuffering is done. The second part of the patch keeps a thread from getting stuck in the Drain() function if the audio buffer level is not changing. This is really a fail-safe in case there are other conditions where this set of events can occur.

comment:9 Changed 10 years ago by robertm

Component: DVD PlaybackMythTV - DVD Playback
Status: assignedinfoneeded

Could you possibly test with .23-fixes (or even better, current trunk) and let us know if this problem persists? Stanley has been doing a lot of work on the DVD playback lately and one of the fixes might pertain to your issue.

comment:10 Changed 10 years ago by robertm

Resolution: fixed
Status: infoneededclosed

Closing with no response, very very old ticket, and many recent fixes to this kind of thing in .23 and trunk. If this issue exists on .23-rc3 or later, please reopen with -v playback logs.

Note: See TracTickets for help on using tickets.