[mythtv] Mythfrontend Heap Corruption When Changing Channels w/XvMC

Donald Oakes donald at oakesville.com
Fri Apr 29 06:48:04 UTC 2005


Hello,

Whenever I change channels I'm getting glibc errors which shut down 
mythfrontend.

I'm running Myth 0.18 built from tarred source on Fedora Core 3 using 
XvMC with NVidia's driver version 1.0-7174.  I'm using firewire with 
6200ch, but the errors occur regardless of whether I change channels 
through Myth or through my STB's remote.  This problem is very 
repeatable when switching between HD channels while running with XvMC.

I've rebuilt with debug symbols and appended my gdb output below.  Any 
advice would be greatly appreciated.

Many Thanks,
 - Don

[donald at mythbox mythtv-0.18]$ gdb mythfrontend
malloc: using debugging hooks
GNU gdb Red Hat Linux (6.1post-1.20040607.43rh)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain 
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...Using host 
libthread_db library "/lib/tls/libthread_db.so.1".

(gdb) run
Starting program: /usr/local/bin/mythfrontend
malloc: using debugging hooks
Reading symbols from shared object read from target memory...done.
Loaded system supplied DSO at 0xffffe000
[Thread debugging using libthread_db enabled]
[New Thread -1220991296 (LWP 18893)]
malloc: using debugging hooks
2005-04-28 23:40:33.913 New DB connection, total: 1
Total desktop width=1280, height=1024, numscreens=1
2005-04-28 23:40:33.931 Using screen 0, 1280x1024 at 0,0
[New Thread -1223607376 (LWP 18897)]

Program received signal SIG33, Real-time event 33.
[Switching to Thread -1223607376 (LWP 18897)]
0x4fc23fd8 in clone () from /lib/tls/libc.so.6
(gdb) continue
Continuing.
2005-04-28 23:40:35.815 mythfrontend version: 0.18.20050409-1 www.mythtv.org
2005-04-28 23:40:35.816 Enabled verbose msgs : important general
2005-04-28 23:40:36.354 Switching to square mode (G.A.N.T.)
[New Thread -1233425488 (LWP 18899)]
2005-04-28 23:40:36.929 Joystick disabled.
[Thread -1233425488 (LWP 18899) exited]
2005-04-28 23:40:36.977 Registering Internal as a media playback plugin.
2005-04-28 23:40:37.006 Registering MythDVD DVD Media Handler as a media 
handler2005-04-28 23:40:37.006 Registering MythDVD VCD Media Handler as 
a media handler2005-04-28 23:40:40.833 New DB connection, total: 2
[New Thread -1233425488 (LWP 18902)]
2005-04-28 23:40:40.857 Connecting to backend server: 127.0.0.1:6543 
(try 1 of 5)
2005-04-28 23:40:40.865 Using protocol version 15
2005-04-28 23:40:40.898 Using protocol version 15
[New Thread -1336886352 (LWP 18907)]
[New Thread -1345279056 (LWP 18908)]
adding pes stream at pid 0x27 with type 2
adding pes stream at pid 0x24 with type 129
2005-04-28 23:40:42.153 Opening audio device '/dev/dsp'.
2005-04-28 23:40:42.153 Opening OSS audio device '/dev/dsp'.
[New Thread -1412269136 (LWP 18910)]
Using XvMC version: 1.0
XvMC found and using IDCT surface
2005-04-28 23:40:42.172 Using XV port 177
[New Thread -1491780688 (LWP 18911)]
2005-04-28 23:40:42.806 Realtime priority would require SUID as root.
XvMC: picture structure FRAME
2005-04-28 23:40:42.828 Changing from None to WatchingLiveTV
2005-04-28 23:40:42.914 Video timing method: USleep with busy wait
av_remove_stream 0x24
adding pes stream at pid 0x21 with type 2
closing filter for pid 0x27
av_remove_stream 0x27
streams_changed()
2005-04-28 23:40:50.660 streams_changed() -- stream count 1
*** glibc detected *** free(): invalid pointer: 0x08519c10 ***

Program received signal SIGABRT, Aborted.
[Switching to Thread -1336886352 (LWP 18907)]
0xffffe410 in __kernel_vsyscall ()
(gdb) thread apply all bt full

Thread 8 (Thread -1491780688 (LWP 18911)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0x4fda6cfc in pthread_cond_timedwait@@GLIBC_2.3.2 ()
   from /lib/tls/libpthread.so.0
No symbol table info available.
#2  0x416c23ad in QWaitCondition::wait ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#3  0xb7c0a897 in NuppelVideoPlayer::OutputVideoLoop (this=0x828dee0)
    at NuppelVideoPlayer.cpp:1607
        frame = (VideoFrame *) 0x82ea608
        temp_speed = 1
        fr_int = 33366
#4  0xb7c0b05a in NuppelVideoPlayer::kickoffOutputVideoLoop 
(player=0x828dee0)
    at NuppelVideoPlayer.cpp:1703
        nvp = (NuppelVideoPlayer *) 0x828dee0
#5  0x4fda4341 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#6  0x4fc23fee in clone () from /lib/tls/libc.so.6
No symbol table info available.

---Type <return> to continue, or q <return> to quit---
Thread 7 (Thread -1412269136 (LWP 18910)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0x4fbe71a6 in __nanosleep_nocancel () from /lib/tls/libc.so.6
No symbol table info available.
#2  0x4fc1d31a in usleep () from /lib/tls/libc.so.6
No symbol table info available.
#3  0xb7662fd4 in AudioOutputBase::OutputAudioLoop (this=0xabd28008)
    at audiooutputbase.cpp:711
        space_on_soundcard = 61644
        last_space_on_soundcard = 61644
        zeros = "\000"
        fragment = "\uffff\002"
        e = {<QCustomEvent> = {<> = {<No data fields>}, d = 0x0},
  error_msg = 0x0, elasped_seconds = 0, written_bytes = 0, brate = 0,
  freq = 1099347456, prec = 1203, chan = 0}
#4  0xb76648af in AudioOutputBase::kickoffOutputAudioLoop 
(player=0xabd28008)
    at audiooutputbase.cpp:872
No locals.
#5  0x4fda4341 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#6  0x4fc23fee in clone () from /lib/tls/libc.so.6
No symbol table info available.
---Type <return> to continue, or q <return> to quit---

Thread 6 (Thread -1345279056 (LWP 18908)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0x4fc1ca51 in ___newselect_nocancel () from /lib/tls/libc.so.6
No symbol table info available.
#2  0x41625b54 in QSocketDevice::waitForMore ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#3  0xb758e55c in RemoteFile::Read (this=0x8271908, data=0xaf2d7008,
    size=256000) at remotefile.cpp:263
        recv = 0
        sent = 256000
        zerocnt = 1
        strlist = {<QValueList<QString>> = {sh = 0x82ecc18}, <No data 
fields>}
        error = false
        response = false
#4  0xb7c94fae in RingBuffer::safe_read (this=0x8279408, rf=0x8271908,
    data=0xaf2d7008, sz=256000) at RingBuffer.cpp:634
        ret = 0
#5  0xb7c95ced in RingBuffer::ReadAheadThread (this=0x8279408)
    at RingBuffer.cpp:853
        totfree = 256000
---Type <return> to continue, or q <return> to quit---
        ret = 256000
        used = 282625
#6  0xb7c95a23 in RingBuffer::startReader (type=0x8279408)
    at RingBuffer.cpp:792
        rbuffer = (RingBuffer *) 0x8279408
#7  0x4fda4341 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#8  0x4fc23fee in clone () from /lib/tls/libc.so.6
No symbol table info available.

Thread 5 (Thread -1336886352 (LWP 18907)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0x4fb847d5 in raise () from /lib/tls/libc.so.6
No symbol table info available.
#2  0x4fb86149 in abort () from /lib/tls/libc.so.6
No symbol table info available.
#3  0x4fbb827a in __libc_message () from /lib/tls/libc.so.6
No symbol table info available.
#4  0x4fbc351b in free_check () from /lib/tls/libc.so.6
No symbol table info available.
#5  0x4fbbede5 in free () from /lib/tls/libc.so.6
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#6  0xb7782228 in av_free (ptr=0x0) at mem.c:123
No locals.
#7  0xb7a1efc0 in av_destruct_packet (pkt=0x82ec610) at utils.c:172
No locals.
#8  0xb7d28273 in av_free_packet (pkt=0x82ec610) at avformat.h:71
No locals.
#9  0xb7d30740 in AvFormatDecoder::GetFrame (this=0xaf219008, onlyvideo=0)
    at avformatdecoder.cpp:1657
        curstream = (AVStream *) 0x8519e50
        pkt = (AVPacket *) 0x82ec610
        ret = 184
        ptr = (unsigned char *) 0x8519cc8 ""
        firstloop = true
        have_err = false
        storevideoframes = false
        len = 0
        data_size = 0
        pts = 83565740
        allowedquit = false
        skipaudio = true
#10 0xb7c0649b in NuppelVideoPlayer::GetFrame (this=0x828dee0, onlyvideo=0,
    unsafe=false) at NuppelVideoPlayer.cpp:843
No locals.
---Type <return> to continue, or q <return> to quit---
#11 0xb7c0c505 in NuppelVideoPlayer::StartPlaying (this=0x828dee0)
    at NuppelVideoPlayer.cpp:2023
        output_video = 2803186608
        decoder_thread = 2958080944
        pausecheck = 0
#12 0xb7cbbe43 in SpawnDecode (param=0x828dee0) at tv_play.cpp:210
        nvp = (NuppelVideoPlayer *) 0x828dee0
#13 0x4fda4341 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#14 0x4fc23fee in clone () from /lib/tls/libc.so.6
No symbol table info available.

Thread 4 (Thread -1233425488 (LWP 18902)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0x4fbe71a6 in __nanosleep_nocancel () from /lib/tls/libc.so.6
No symbol table info available.
#2  0x4fc1d31a in usleep () from /lib/tls/libc.so.6
No symbol table info available.
#3  0xb7cc3969 in TV::RunTV (this=0x829aa30) at tv_play.cpp:1131
        keypressed = (QKeyEvent *) 0x82984a0
        updatecheck = 3
#4  0xb7cc3281 in TV::EventThread (param=0x829aa30) at tv_play.cpp:1072
---Type <return> to continue, or q <return> to quit---
        thetv = (class TV *) 0x829aa30
#5  0x4fda4341 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#6  0x4fc23fee in clone () from /lib/tls/libc.so.6
No symbol table info available.

Thread 2 (Thread -1223607376 (LWP 18897)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0x4fda6a86 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/tls/libpthread.so.0
No symbol table info available.
#2  0x416c22e1 in QWaitCondition::wait ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#3  0xb757a7dd in MythContext::waitPrivRequest (this=0x8197f28)
    at mythcontext.cpp:2356
No locals.
#4  0x0806d873 in run_priv_thread (data=0x0) at main.cpp:663
No locals.
#5  0x4fda4341 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#6  0x4fc23fee in clone () from /lib/tls/libc.so.6
---Type <return> to continue, or q <return> to quit---
No symbol table info available.

Thread 1 (Thread -1220991296 (LWP 18893)):
#0  0xffffe410 in __kernel_vsyscall ()
No symbol table info available.
#1  0x4fbe71a6 in __nanosleep_nocancel () from /lib/tls/libc.so.6
No symbol table info available.
#2  0x4fc1d31a in usleep () from /lib/tls/libc.so.6
No symbol table info available.
#3  0x0806ae9b in startTV () at main.cpp:310
        tv = (class TV *) 0x829aa30
        timer = {ds = 85240887}
        tryTV = false
        tryRecorder = false
        quitAll = false
        showDialogs = true
#4  0x0806b009 in TVMenuCallback (data=0x8197f28, selection=@0x828a220)
    at main.cpp:348
        sel = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x8158610, static shared_null = 0x8158610}, d = 0x8279890,
  static shared_null = 0x8158610}
#5  0xb75baee5 in ThemedMenuPrivate::handleAction (this=0x828a128,
---Type <return> to continue, or q <return> to quit---
    action=@0x8299160) at themedmenu.cpp:2464
No locals.
#6  0xb75b9359 in ThemedMenuPrivate::keyPressHandler (this=0x828a128,
    e=0xbfffe990) at themedmenu.cpp:2293
        it = {node = 0x8299158}
        action = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x8158610, static shared_null = 0x8158610}, d = 0x826fbc8,
  static shared_null = 0x8158610}
        i = 0
        lastbutton = (ThemedButton *) 0x828a660
        oldrow = 0
        handled = true
        actions = {<QValueList<QString>> = {sh = 0x82796e8}, <No data 
fields>}
#7  0xb75bc5ac in ThemedMenu::keyPressEvent (this=0x8277978, e=0xbfffe990)
    at themedmenu.cpp:2658
No locals.
#8  0x4146339f in QWidget::event () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#9  0x413ce539 in QApplication::internalNotify ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#10 0x413ceb4c in QApplication::notify ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#11 0x41364610 in QETWidget::translateKeyEvent ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#12 0x4136b82f in QApplication::x11ProcessEvent ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#13 0x4137e1a6 in QEventLoop::processEvents ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#14 0x413e3b85 in QEventLoop::enterLoop ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#15 0x413cd761 in QApplication::enter_loop ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#16 0xb7626959 in MythDialog::exec (this=0x8277978) at mythdialogs.cpp:945
        res = -1218287390
#17 0x0806be42 in RunMenu (themedir=
      {static null = {static null = <same as static member of an already 
seen type>, d = 0x8158610, static shared_null = 0x8158610}, d = 
0x81b37b0, static shared_null = 0x8158610}) at main.cpp:504
---Type <return> to continue, or q <return> to quit---
        exitstatus = 0
#18 0x080713ba in main (argc=1, argv=0xbffff254) at main.cpp:1077
        geometry = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x8158610, static shared_null = 0x8158610}, d = 0x8169580,
  static shared_null = 0x8158610}
        a = <incomplete type>
        logfile = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x8158610, static shared_null = 0x8158610}, d = 0x819acd8,
  static shared_null = 0x8158610}
        finfo = {fn = {static null = {
      static null = <same as static member of an already seen type>,
      d = 0x8158610, static shared_null = 0x8158610}, d = 0x819acf8,
    static shared_null = 0x8158610}, fic = 0x0, cache = true, symLink = 
false}
        logfd = -1
        fileprefix = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x8158610, static shared_null = 0x8158610}, d = 0x819b6d0,
  static shared_null = 0x8158610}
        themename = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x8158610, static shared_null = 0x8158610}, d = 0x8217c78,
---Type <return> to continue, or q <return> to quit---
  static shared_null = 0x8158610}
        randomtheme = false
        verboseString = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x8158610, static shared_null = 0x8158610}, d = 0x8198208,
  static shared_null = 0x8158610}
        status = 0
        mainWindow = (class MythMainWindow *) 0x8212ea8
        pmanager = (MythPluginManager *) 0x8271608
        lcd_host = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x8158610, static shared_null = 0x8158610}, d = 0x819ed70,
  static shared_null = 0x8158610}
        pluginname = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x8158610, static shared_null = 0x8158610}, d = 0x8198238,
  static shared_null = 0x8158610}
        binname = {static null = {
    static null = <same as static member of an already seen type>,
    d = 0x8158610, static shared_null = 0x8158610}, d = 0x81980d8,
  static shared_null = 0x8158610}
        priv_thread = 3071359920
        themedir = {static null = {
---Type <return> to continue, or q <return> to quit---
    static null = <same as static member of an already seen type>,
    d = 0x8158610, static shared_null = 0x8158610}, d = 0x81b37b0,
  static shared_null = 0x8158610}
        exitstatus = 6646904
        mon = (class MediaMonitor *) 0x0
        lcd_port = 13666
        dir = <incomplete type>
#0  0xffffe410 in __kernel_vsyscall ()



More information about the mythtv-dev mailing list