[mythtv] RE: Segfault in mythfrontend when returning to playl ist from watc hing recording...

jasonmiller jasonmiller at micron.com
Fri Apr 4 07:49:48 EST 2003


I'm actually seeing it with current CVS and CVS from about a week ago.  
I'll also note that even with my blatent hack, it still segfaults if the 
recording reaches the end and automatically returns to the playlist.  
This is definitely, at least in my case, tied to my updating Gentoo to 
the latest stable releases.  Any suggestions on what to try next?  It 
sorta smells like a timing issue between threads to me which is well 
beyond my debug experience.

-----Original Message-----
From: Emil Friis [mailto:mythtv at bellsouth.net]
Sent: Friday, April 04, 2003 5:16 AM
To: Development of mythtv
Subject: Re: [mythtv] RE: Segfault in mythfrontend when returning to
playlist from watc hing recording...


I see that too. It happens with cvs from round noon yesterday (EST) on a 
standalone frontend.

On Thursday 03 April 2003 21:48, jasonmiller wrote:
>   Well, since the backtrace made no sense to me, I dug in a little more.
> I'm able to prevent the segfault by adding:
>
> diff -r1.104 playbackbox.cpp
> 850c850
> <
> ---
>
> >       if (h < 0) return;
>
> Of course, the screen doesn't update until I hit up or down arrow but it
> beats the heck out of a seg fault!
>
> When it fails, h is negative which is a bad thing as far as I can tell.
> Knowing less than nothing about the code, I have no idea but seems odd
> that I'm the only one seeing it, or at least talking about it :)
>
>
> -----Original Message-----
> From: jasonmiller
> To: 'mythtv-dev at snowman.net'
> Sent: 04/03/2003 2:14 PM
> Subject: Segfault in mythfrontend when returning to playlist from watching
> recording...
>
> With the latest CVS I'm getting a segfault in mythfrontend when I exit
> watching a recording and come back to the playlist.  The playlist
> background shows up (but no playlist) and poof.  I'm running QT v3.1.0.
> Any suggestions?  Backtrace follows...
>
> (gdb) run
> Starting program: /usr/local/bin/mythfrontend
> [New Thread 16384 (LWP 2189)]
> connecting to backend server: 192.168.1.14:6543
> [New Thread 32769 (LWP 2208)]
> [New Thread 16386 (LWP 2209)]
> [New Thread 32771 (LWP 2210)]
> [New Thread 49156 (LWP 2211)]
> [New Thread 65541 (LWP 2212)]
> Changing from None to WatchingPreRecorded
> [New Thread 81926 (LWP 2213)]
> Over/underscanning. V: 0.000000, H: 0.050000, XOff: 0, YOff: 100
> Using XV port 69
> [New Thread 98311 (LWP 2217)]
> [New Thread 114696 (LWP 2218)]
> Delaying to next trigger: 28843974
> Delaying to next trigger: 25624069
> Delaying to next trigger: 26426936
> Delaying to next trigger: 25020302
> Delaying to next trigger: 23133453
> Delaying to next trigger: 19266040
> Delaying to next trigger: 11952297
> Delaying to next trigger: 5268344
> Delaying to next trigger: 1045240
> Changing from WatchingPreRecorded to None
> Changing from None to None
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 16384 (LWP 2189)]
> 0x40665751 in operator==(QString const&, char const*) () from
> /usr/qt/3/lib/libqt-mt.so.3
> (gdb) bt
> #0  0x40665751 in operator==(QString const&, char const*) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #1  0x406657f6 in operator!=(QString const&, char const*) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #2  0x0807fd7c in PlaybackBox::updateShowTitles(QPainter*)
> (this=0xbfffe9c0, p=0xbfffd7a0)
>     at playbackbox.cpp:851
> #3  0x0807cbb8 in PlaybackBox::paintEvent(QPaintEvent*)
> (this=0xbfffe9c0, e=0xbfffdb20)
>     at playbackbox.cpp:496
> #4  0x40417130 in QWidget::event(QEvent*) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #5  0x403853c6 in QApplication::internalNotify(QObject*, QEvent*) ()
> from /usr/qt/3/lib/libqt-mt.so.3
> #6  0x40384986 in QApplication::notify(QObject*, QEvent*) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #7  0x4035b6f2 in QWidget::repaint(QRegion const&, bool) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #8  0x403861ab in QApplication::sendPostedEvents(QObject*, int) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #9  0x40385ff8 in QApplication::sendPostedEvents() () from
> /usr/qt/3/lib/libqt-mt.so.3
> #10 0x4033e835 in QEventLoop::processEvents(unsigned) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #11 0x403990c1 in QEventLoop::processEvents(unsigned, int) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #12 0x40385540 in QApplication::processEvents(int) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #13 0x40385507 in QApplication::processEvents() () from
> /usr/qt/3/lib/libqt-mt.so.3
> #14 0x400afd3f in ReadStringList(QSocket*, QStringList&)
> (socket=0x83908e0, list=@0xbfffdef0)
>     at util.cpp:100
> #15 0x40080ee7 in MythContext::SendReceiveStringList(QStringList&)
> (this=0x8386838, strlist=@0xbfffdef0)
>     at mythcontext.cpp:577
> #16 0x0812332b in RemoteGetRecordedList(bool) (deltype=false) at
> remoteutil.cpp:18
> #17 0x08083440 in PlaybackBox::FillList() (this=0xbfffe9c0) at
> playbackbox.cpp:1381
> #18 0x08084b3c in PlaybackBox::play(ProgramInfo*) (this=0xbfffe9c0,
> rec=0x840ed48) at playbackbox.cpp:1632
> #19 0x08084785 in PlaybackBox::selected() (this=0xbfffe9c0) at
> playbackbox.cpp:1575
> #20 0x080be63a in PlaybackBox::qt_invoke(int, QUObject*)
> (this=0xbfffe9c0, _id=59, _o=0xbfffe170)
>     at moc_playbackbox.cpp:136
> #21 0x403e2f99 in QObject::activate_signal(QConnectionList*, QUObject*)
> () from /usr/qt/3/lib/libqt-mt.so.3
> #22 0x406c2652 in QSignal::signal(QVariant const&) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #23 0x403fd0d8 in QSignal::activate() () from
> /usr/qt/3/lib/libqt-mt.so.3
> #24 0x4038043e in QAccelPrivate::activate(QAccelItem*) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #25 0x4037ee5e in QAccelManager::dispatchAccelEvent(QWidget*,
> QKeyEvent*) ()
>    from /usr/qt/3/lib/libqt-mt.so.3
> #26 0x4037e82e in qt_dispatchAccelEvent(QWidget*, QKeyEvent*) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #27 0x40384907 in QApplication::notify(QObject*, QEvent*) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #28 0x4037ecb6 in QAccelManager::tryAccelEvent(QWidget*, QKeyEvent*) ()
> from /usr/qt/3/lib/libqt-mt.so.3
> #29 0x4037e79e in qt_tryAccelEvent(QWidget*, QKeyEvent*) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #30 0x4032dbab in QETWidget::translateKeyEvent(_XEvent const*, bool) ()
> from /usr/qt/3/lib/libqt-mt.so.3
> #31 0x403294a8 in QApplication::x11ProcessEvent(_XEvent*) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #32 0x4033e8ba in QEventLoop::processEvents(unsigned) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #33 0x40399026 in QEventLoop::enterLoop() () from
> /usr/qt/3/lib/libqt-mt.so.3
> #34 0x40385671 in QApplication::enter_loop() () from
> /usr/qt/3/lib/libqt-mt.so.3
> #35 0x40546bf1 in QDialog::exec() () from /usr/qt/3/lib/libqt-mt.so.3
> #36 0x0806998f in startPlayback() () at main.cpp:60
> #37 0x08069d4c in TVMenuCallback(void*, QString&) (data=0x8386838,
> selection=@0x839b830) at main.cpp:131
> #38 0x400a9533 in ThemedMenu::handleAction(QString&) (this=0x839b6f8,
> action=@0x83b027c)
>     at themedmenu.cpp:1463
> #39 0x400a8cc3 in ThemedMenu::keyPressEvent(QKeyEvent*) (this=0x839b6f8,
> e=0xbffff1a0)
>     at themedmenu.cpp:1387
> #40 0x4041705c in QWidget::event(QEvent*) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #41 0x403853c6 in QApplication::internalNotify(QObject*, QEvent*) ()
> from /usr/qt/3/lib/libqt-mt.so.3
> #42 0x40384d6c in QApplication::notify(QObject*, QEvent*) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #43 0x4032d65e in QETWidget::translateKeyEvent(_XEvent const*, bool) ()
> from /usr/qt/3/lib/libqt-mt.so.3
> #44 0x403294a8 in QApplication::x11ProcessEvent(_XEvent*) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #45 0x4033e8ba in QEventLoop::processEvents(unsigned) () from
> /usr/qt/3/lib/libqt-mt.so.3
> #46 0x40399026 in QEventLoop::enterLoop() () from
> /usr/qt/3/lib/libqt-mt.so.3
> #47 0x40385671 in QApplication::enter_loop() () from
> /usr/qt/3/lib/libqt-mt.so.3
> #48 0x40546bf1 in QDialog::exec() () from /usr/qt/3/lib/libqt-mt.so.3
> #49 0x0806ab1d in RunMenu(QString) (themedir=
>       {static null = {static null = <same as static member of an already
> seen type>, d = 0x835fcc8, static shared_null = 0x835fcc8}, d =
> 0x83aaaa8, static shared_null = 0x835fcc8}) at main.cpp:222
> #50 0x0806bf90 in main (argc=1, argv=0xbffff844) at main.cpp:347
> #51 0x40a3ddb4 in __libc_start_main () from /lib/libc.so.6
>
> _______________________________________________
> mythtv-dev mailing list
> mythtv-dev at snowman.net
> http://lists.snowman.net/cgi-bin/mailman/listinfo/mythtv-dev

_______________________________________________
mythtv-dev mailing list
mythtv-dev at snowman.net
http://lists.snowman.net/cgi-bin/mailman/listinfo/mythtv-dev


More information about the mythtv-dev mailing list