[mythtv-commits] Ticket #9201: LiveTV channel change often fails.

MythTV mythtv at cvs.mythtv.org
Fri Nov 26 20:09:54 UTC 2010


#9201: LiveTV channel change often fails.
-----------------------------------------------+----------------------------
 Reporter:  Sami Tapio <tapio.sami@…>          |           Owner:  markk     
     Type:  defect                             |          Status:  assigned  
 Priority:  minor                              |       Milestone:  unknown   
Component:  MythTV - General                   |         Version:  0.24-fixes
 Severity:  medium                             |      Resolution:            
 Keywords:                                     |   Ticket locked:  1         
-----------------------------------------------+----------------------------
Changes (by danielk):

  * owner:  danielk => markk


Comment:

 This was captured using an altered source, so it may not match exactly
 what you see with trunk:
 {{{
 #0  0x00007fffed202ff3 in select () from /lib/libc.so.6
 #1  0x00007ffff5641dc0 in MSocketDevice::waitForMore(int, bool*) const ()
 from /usr/local/lib/libmythdb-0.24.so.0
 #2  0x00007ffff55bea05 in RemoteFile::Read(void*, int) () from
 /usr/local/lib/libmythdb-0.24.so.0
 #3  0x00007ffff72fb208 in RingBuffer::safe_read(RemoteFile*, void*,
 unsigned int) () from /usr/local/lib/libmythtv-0.24.so.0
 #4  0x00007ffff7303d5e in RingBuffer::ReadDirect(void*, int, bool) () from
 /usr/local/lib/libmythtv-0.24.so.0
 #5  0x00007ffff7304ff4 in RingBuffer::ReadPriv(void*, int, bool) () from
 /usr/local/lib/libmythtv-0.24.so.0
 #6  0x00007ffff730664d in RingBuffer::Read(void*, int) () from
 /usr/local/lib/libmythtv-0.24.so.0
 #7  0x00007ffff6c4444c in get_buffer () from
 /usr/local/lib/libmythavformat.so.52
 #8  0x00007ffff6c77036 in ?? () from /usr/local/lib/libmythavformat.so.52
 #9  0x00007ffff6cb8bcd in av_read_packet () from
 /usr/local/lib/libmythavformat.so.52
 #10 0x00007ffff6cba7f0 in ?? () from /usr/local/lib/libmythavformat.so.52
 #11 0x00007ffff6cbb67c in av_find_stream_info () from
 /usr/local/lib/libmythavformat.so.52
 #12 0x00007ffff768b7f6 in AvFormatDecoder::OpenFile(RingBuffer*, bool,
 char*, int) () from /usr/local/lib/libmythtv-0.24.so.0
 #13 0x00007ffff7611e3e in MythPlayer::OpenFile(unsigned int, bool) () from
 /usr/local/lib/libmythtv-0.24.so.0
 #14 0x00007ffff7612c1b in MythPlayer::JumpToProgram() () from
 /usr/local/lib/libmythtv-0.24.so.0
 #15 0x00007ffff7614e4c in MythPlayer::EventLoop() () from
 /usr/local/lib/libmythtv-0.24.so.0
 #16 0x00007ffff75f11ec in PlayerTimer::event(QEvent*) () from
 /usr/local/lib/libmythtv-0.24.so.0
 #17 0x00007fffee5c422c in QApplicationPrivate::notify_helper(QObject*,
 QEvent*) () from /usr/lib/libQtGui.so.4
 #18 0x00007fffee5ca6fb in QApplication::notify(QObject*, QEvent*) () from
 /usr/lib/libQtGui.so.4
 #19 0x00007fffeddc306c in QCoreApplication::notifyInternal(QObject*,
 QEvent*) () from /usr/lib/libQtCore.so.4
 #20 0x00007fffeddc57e7 in
 QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
 from /usr/lib/libQtCore.so.4
 #21 0x00007fffeddec9d3 in ?? () from /usr/lib/libQtCore.so.4
 #22 0x00007fffe9c1f8c2 in g_main_context_dispatch () from
 /lib/libglib-2.0.so.0
 #23 0x00007fffe9c23748 in ?? () from /lib/libglib-2.0.so.0
 #24 0x00007fffe9c238fc in g_main_context_iteration () from
 /lib/libglib-2.0.so.0
 #25 0x00007fffeddec513 in
 QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
 () from /usr/lib/libQtCore.so.4
 #26 0x00007fffee67446e in ?? () from /usr/lib/libQtGui.so.4
 #27 0x00007fffeddc5c0f in
 QCoreApplication::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
 from /usr/lib/libQtCore.so.4
 #28 0x00007ffff7591148 in TV::StartTV(ProgramInfo*, unsigned int) () from
 /usr/local/lib/libmythtv-0.24.so.0
 #29 0x0000000000431df6 in ?? ()
 #30 0x00007ffff520c94a in MythThemedMenu::handleAction(QString const&,
 QString const&) () from /usr/local/lib/libmythui-0.24.so.0
 #31 0x00007ffff520d5cd in
 MythThemedMenu::buttonAction(MythUIButtonListItem*, bool) () from
 /usr/local/lib/libmythui-0.24.so.0
 #32 0x00007ffff52de8f5 in MythThemedMenu::qt_metacall(QMetaObject::Call,
 int, void**) () from /usr/local/lib/libmythui-0.24.so.0
 #33 0x00007fffeddd5e3f in QMetaObject::activate(QObject*, QMetaObject
 const*, int, void**) () from /usr/lib/libQtCore.so.4
 #34 0x00007ffff52dff72 in
 MythUIButtonList::itemClicked(MythUIButtonListItem*) () from
 /usr/local/lib/libmythui-0.24.so.0
 #35 0x00007ffff5232270 in MythUIButtonList::keyPressEvent(QKeyEvent*) ()
 from /usr/local/lib/libmythui-0.24.so.0
 #36 0x00007ffff520e44a in MythThemedMenu::keyPressEvent(QKeyEvent*) ()
 from /usr/local/lib/libmythui-0.24.so.0
 #37 0x00007ffff519c1a1 in MythMainWindow::eventFilter(QObject*, QEvent*)
 () from /usr/local/lib/libmythui-0.24.so.0
 #38 0x00007fffeddc2487 in
 QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*)
 () from /usr/lib/libQtCore.so.4
 ---Type <return> to continue, or q <return> to quit---
 #39 0x00007fffee5c41fc in QApplicationPrivate::notify_helper(QObject*,
 QEvent*) () from /usr/lib/libQtGui.so.4
 #40 0x00007fffee5cbec5 in QApplication::notify(QObject*, QEvent*) () from
 /usr/lib/libQtGui.so.4
 #41 0x00007fffeddc306c in QCoreApplication::notifyInternal(QObject*,
 QEvent*) () from /usr/lib/libQtCore.so.4
 #42 0x00007fffee66f16a in ?? () from /usr/lib/libQtGui.so.4
 #43 0x00007fffee6716f0 in ?? () from /usr/lib/libQtGui.so.4
 #44 0x00007fffee648904 in QApplication::x11ProcessEvent(_XEvent*) () from
 /usr/lib/libQtGui.so.4
 #45 0x00007fffee674882 in ?? () from /usr/lib/libQtGui.so.4
 #46 0x00007fffe9c1f8c2 in g_main_context_dispatch () from
 /lib/libglib-2.0.so.0
 #47 0x00007fffe9c23748 in ?? () from /lib/libglib-2.0.so.0
 #48 0x00007fffe9c238fc in g_main_context_iteration () from
 /lib/libglib-2.0.so.0
 #49 0x00007fffeddec513 in
 QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
 () from /usr/lib/libQtCore.so.4
 #50 0x00007fffee67446e in ?? () from /usr/lib/libQtGui.so.4
 #51 0x00007fffeddc1992 in
 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from
 /usr/lib/libQtCore.so.4
 #52 0x00007fffeddc1d6c in
 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
 /usr/lib/libQtCore.so.4
 #53 0x00007fffeddc5aab in QCoreApplication::exec() () from
 /usr/lib/libQtCore.so.4
 #54 0x00000000004308ee in ?? ()
 #55 0x00007fffed142c4d in __libc_start_main () from /lib/libc.so.6
 #56 0x0000000000426cf9 in ?? ()
 #57 0x00007fffffffe208 in ?? ()
 #58 0x000000000000001c in ?? ()
 #59 0x0000000000000003 in ?? ()
 #60 0x00007fffffffe518 in ?? ()
 #61 0x00007fffffffe534 in ?? ()
 #62 0x00007fffffffe537 in ?? ()
 #63 0x0000000000000000 in ?? ()
 }}}

 The important thing to note is that the inability to read more data from
 the file appears to be blocking the UI thread which prevents it from
 displaying anything useful, or allowing you to change channels, or jumping
 to the next recording file if there is one. So this looks like a problem
 caused by the threading changes made for the port of the OSD to MythUI.
 I'm not really up to date on those changes yet, so I'm reassigning this to
 Mark Kendall.

 Note: There could also be a RingBuffer problem (if the file really did
 grow, but safe_read() failed to read the data), or a signal monitoring
 problem (if the backend reported the signal was ok, but it really wasn't),
 or something else.

-- 
Ticket URL: <http://svn.mythtv.org/trac/ticket/9201#comment:5>
MythTV <http://www.mythtv.org/>
MythTV Media Center


More information about the mythtv-commits mailing list