[mythtv] Backtrace of segfault when starting a recording in live-tv

Oscar Carlsson oscar.carlsson at home.se
Mon Jan 26 07:37:54 EST 2004


Hello Development,

  Using latest CVS as of this email.

  LiveTV, press R to start a recording, and I got this segfault on the frontend.

GNU gdb 5.3
Copyright 2002 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 "i686-pc-linux-gnu"...
(gdb) run
Starting program: /usr/local/bin/mythfrontend 
2004-01-26 13:31:53 mythfrontend version: 0.14.20040123-1 www.mythtv.org
2004-01-26 13:31:53 Enabled verbose msgs : important general
2004-01-26 13:31:53 Registering Internal as a media playback plugin.
2004-01-26 13:31:57 Registering MythMusic Media Handler as a media handler
2004-01-26 13:32:04 Connecting to backend server: 127.0.0.1:6543 (try 1 of 5)
2004-01-26 13:32:09 Opening OSS audio device '/dev/dsp'.
2004-01-26 13:32:09 Using XV port 111
2004-01-26 13:32:09 Changing from None to WatchingLiveTV
[New Thread 16384 (LWP 10815)]
[New Thread 32769 (LWP 10819)]
[New Thread 16386 (LWP 10820)]
[New Thread 32771 (LWP 10823)]
[New Thread 49156 (LWP 10824)]
[New Thread 65541 (LWP 10825)]
[New Thread 81926 (LWP 10826)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16386 (LWP 10820)]
0x401cc9ed in ProgramInfo::GetProgramRecordingStatus(QSqlDatabase*) (this=0x0, 
    db=0x81f9038) at programinfo.cpp:603
603         if (record == NULL) 
(gdb) thread apply all bt full

Thread 7 (Thread 81926 (LWP 10826)):
#0  0x41267677 in poll () from /lib/libc.so.6
No symbol table info available.
#1  0x402dd94c in vsync_wait_for_retrace () at vsync.c:223
        polldata = {fd = 23, events = 255, revents = 0}
#2  0x40198f4d in NuppelVideoPlayer::ExAVSync() (this=0x822af50)
    at NuppelVideoPlayer.cpp:1274
        buffer = (VideoFrame *) 0x8554ea0
#3  0x4019a1cd in NuppelVideoPlayer::OutputVideoLoop() (this=0x822af50)
    at NuppelVideoPlayer.cpp:1594
        frame = (VideoFrame *) 0x8554ea0
#4  0x4019a49a in NuppelVideoPlayer::kickoffOutputVideoLoop(void*) (
    player=0x822af50) at NuppelVideoPlayer.cpp:1666
        nvp = (NuppelVideoPlayer *) 0x822af50
#5  0x4106dd40 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#6  0x4106de42 in pthread_start_thread_event () from /lib/libpthread.so.0
No symbol table info available.

Thread 6 (Thread 65541 (LWP 10825)):
#0  0x412418f6 in nanosleep () from /lib/libc.so.6
No symbol table info available.
#1  0x00000000 in ?? ()
No symbol table info available.

Thread 5 (Thread 49156 (LWP 10824)):
#0  0x41268f61 in select () from /lib/libc.so.6
No symbol table info available.
#1  0x4105acb4 in __JCR_LIST__ () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#2  0x406c307d in RemoteFile::Read(void*, int) (this=0x84655d8, 
    data=0x44070808, size=256000) at remotefile.cpp:234
        recv = 0
        sent = 256000
        zerocnt = 3
        error = false
        response = false
        strlist = {<QValueList<QString>> = {sh = 0x821df10}, <No data fields>}
#3  0x402074ab in RingBuffer::safe_read(RemoteFile*, void*, unsigned) (
    this=0x822d280, rf=0x84655d8, data=0x44070808, sz=256000)
    at RingBuffer.cpp:493
        ret = 0
#4  0x40207f24 in RingBuffer::ReadAheadThread() (this=0x822d280)
    at RingBuffer.cpp:711
        totfree = 256000
        ret = 256000
        used = 1112065
#5  0x40207c69 in RingBuffer::startReader(void*) (type=0x822d280)
    at RingBuffer.cpp:650
        rbuffer = (RingBuffer *) 0x822d280
#6  0x4106dd40 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#7  0x4106de42 in pthread_start_thread_event () from /lib/libpthread.so.0
No symbol table info available.

Thread 4 (Thread 32771 (LWP 10823)):
#0  0x41073a46 in nanosleep () from /lib/libpthread.so.0
No symbol table info available.
#1  0x00000001 in ?? ()
No symbol table info available.
#2  0x4106cec9 in pthread_cond_timedwait_relative () from /lib/libpthread.so.0
No symbol table info available.
#3  0x40e9e919 in QWaitCondition::wait(unsigned long) ()
   from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#4  0x40196f0c in NuppelVideoPlayer::GetFrame(int, bool) (this=0x822af50, 
    onlyvideo=0, unsafe=false) at NuppelVideoPlayer.cpp:645
No locals.
#5  0x4019b128 in NuppelVideoPlayer::StartPlaying() (this=0x822af50)
    at NuppelVideoPlayer.cpp:1900
        output_video = 81926
        pausecheck = 0
#6  0x40225b17 in SpawnDecode(void*) (param=0x822af50) at tv_play.cpp:140
        nvp = (NuppelVideoPlayer *) 0x822af50
#7  0x4106dd40 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#8  0x4106de42 in pthread_start_thread_event () from /lib/libpthread.so.0
No symbol table info available.

Thread 3 (Thread 16386 (LWP 10820)):
#0  0x401cc9ed in ProgramInfo::GetProgramRecordingStatus(QSqlDatabase*) (
    this=0x0, db=0x81f9038) at programinfo.cpp:603
No locals.
#1  0x401cd4c6 in ProgramInfo::ToggleRecord(QSqlDatabase*) (this=0x0, 
    db=0x81f9038) at programinfo.cpp:725
        curType = 1075631266
#2  0x402360f4 in TV::ToggleRecord() (this=0x822cf30) at tv_play.cpp:2780
        desc = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x822cd50, 
  static shared_null = 0x817c930}
        starttime = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x842d9d0, 
  static shared_null = 0x817c930}
        iconpath = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x857c9f8, 
  static shared_null = 0x817c930}
        program_info = (ProgramInfo *) 0x0
        category = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x822cd68, 
  static shared_null = 0x817c930}
        endtime = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x842d9e8, 
  static shared_null = 0x817c930}
        channum = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x822ccf0, 
  static shared_null = 0x817c930}
        startts = {d = {jd = 0}, t = {ds = 0}}
        msg = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x8207ad8, 
  static shared_null = 0x817c930}
        title = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x8231a08, 
  static shared_null = 0x817c930}
        subtitle = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x881bbc0, 
  static shared_null = 0x817c930}
        callsign = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x857c990, 
  static shared_null = 0x817c930}
        chanid = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x822cd28, 
  static shared_null = 0x817c930}
        infoMap = {sh = 0x400574a8}
        startts = {d = {jd = 0}, t = {ds = 0}}
        program_info = (ProgramInfo *) 0x0
#3  0x4022cde9 in TV::ProcessKeypress(QKeyEvent*) (this=0x822cf30, e=0x82319c8)
    at tv_play.cpp:1370
        i = 0
        was_doing_ff_rew = false
        actions = {<QValueList<QString>> = {sh = 0x8239708}, <No data fields>}
        action = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x8203f98, 
  static shared_null = 0x817c930}
        handled = true
#4  0x4022aade in TV::RunTV() (this=0x822cf30) at tv_play.cpp:884
        keypressed = (QKeyEvent *) 0x82319c8
        updatecheck = 16
#5  0x4022a715 in TV::EventThread(void*) (param=0x822cf30) at tv_play.cpp:821
        thetv = (class TV *) 0x822cf30
#6  0x4106dd40 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#7  0x4106de42 in pthread_start_thread_event () from /lib/libpthread.so.0
No symbol table info available.

Thread 2 (Thread 32769 (LWP 10819)):
#0  0x41267677 in poll () from /lib/libc.so.6
No symbol table info available.
#1  0x4106d94e in __pthread_manager () from /lib/libpthread.so.0
No symbol table info available.
#2  0x4106db9a in __pthread_manager_event () from /lib/libpthread.so.0
No symbol table info available.

Thread 1 (Thread 16384 (LWP 10815)):
#0  0x412418f6 in nanosleep () from /lib/libc.so.6
No symbol table info available.
#1  0xffffffa0 in ?? ()
No symbol table info available.
#2  0x0806849d in startTV() () at main.cpp:259
        db = (struct QSqlDatabase *) 0x81f9038
        tv = (class TV *) 0x822cf30
        timer = {ds = 48724668}
        tryTV = false
        tryRecorder = false
        quitAll = false
        showDialogs = true
#3  0x0806957f in TVMenuCallback(void*, QString&) (data=0x81e62a0, 
    selection=@0x821e354) at main.cpp:362
        sel = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x823a5f0, 
  static shared_null = 0x817c930}
#4  0x406e2b3a in ThemedMenuPrivate::handleAction(QString const&) (
    this=0x821e258, action=@0x822803c) at themedmenu.cpp:2044
No locals.
#5  0x406e1385 in ThemedMenuPrivate::keyPressHandler(QKeyEvent*) (
    this=0x821e258, e=0xbffff250) at themedmenu.cpp:1874
        action = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x82038b0, 
  static shared_null = 0x817c930}
        i = 0
        lastbutton = (ThemedButton *) 0x8228000
        oldrow = 0
        handled = true
        actions = {<QValueList<QString>> = {sh = 0x823ae48}, <No data fields>}
#6  0x406e3f46 in ThemedMenu::keyPressEvent(QKeyEvent*) (this=0x8212af8, 
    e=0xbffff250) at themedmenu.cpp:2230
No locals.
#7  0x40c4da0c in QWidget::event(QEvent*) () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#8  0x40bbe3a5 in QApplication::internalNotify(QObject*, QEvent*) ()
   from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#9  0x40bbdc51 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#10 0x4073b021 in MythMainWindow::keyPressEvent(QKeyEvent*) (this=0x8208d00, 
    e=0xbffff250) at mythdialogs.cpp:518
        current = (struct QWidget *) 0x8212af8
#11 0x40c4da0c in QWidget::event(QEvent*) () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#12 0x40bbe3a5 in QApplication::internalNotify(QObject*, QEvent*) ()
   from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#13 0x40bbdc51 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#14 0x40b589c1 in QETWidget::translateKeyEvent(_XEvent const*, bool) ()
   from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#15 0x40b545df in QApplication::x11ProcessEvent(_XEvent*) ()
   from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#16 0x40b6ae77 in QEventLoop::processEvents(unsigned) ()
   from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#17 0x40bd1606 in QEventLoop::enterLoop() () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#18 0x40bbe651 in QApplication::enter_loop() ()
   from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#19 0x4073bdc9 in MythDialog::exec() (this=0x8212af8) at mythdialogs.cpp:717
        res = 1081326930
#20 0x0806a676 in RunMenu(QString) (themedir=
      {static null = {static null = <same as static member of an already seen type>, d = 0x817c930, static shared_null = 0x817c930}, d = 0x8215748, static shared_null = 0x817c930}) at main.cpp:503
        exitstatus = 0
#21 0x0806e402 in main (argc=1, argv=0xbffff984) at main.cpp:906
        lcd_host = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x82126a8, 
  static shared_null = 0x817c930}
        lcd_port = 13666
        a = <incomplete type>
        translator = <incomplete type>
        logfile = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x81e61e8, 
  static shared_null = 0x817c930}
        verboseString = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x81e6200, 
  static shared_null = 0x817c930}
        pluginname = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x81e6218, 
  static shared_null = 0x817c930}
        finfo = {fn = {static null = {
      static null = <same as static member of an already seen type>, 
      d = 0x817c930, static shared_null = 0x817c930}, d = 0x81e6270, 
    static shared_null = 0x817c930}, fic = 0x0, cache = true, symLink = false}
        binname = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x81e6288, 
  static shared_null = 0x817c930}
        logfd = -1
        db = (struct QSqlDatabase *) 0x81f9038
        themename = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x8217d38, 
  static shared_null = 0x817c930}
        randomtheme = false
        themedir = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x817c930, static shared_null = 0x817c930}, d = 0x8215748, 
  static shared_null = 0x817c930}
        mainWindow = (class MythMainWindow *) 0x8208d00
        pmanager = (MythPluginManager *) 0x8212ab0
        mon = (class MediaMonitor *) 0x0
        exitstatus = 1073775063
#22 0x411aa90c in __libc_start_main () from /lib/libc.so.6
No symbol table info available.
0x401cc9ed      603         if (record == NULL) 
(gdb) (gdb) quit
The program is running.  Exit anyway? (y or n)   


The backend doesn't die, and only says:

2004-01-26 13:32:06 Changing from None to WatchingLiveTV
2004-01-26 13:32:06 Using profile 'Live TV' to record
2004-01-26 13:32:14 WriteBlock(): Aborting WriteBlock, write to socket failed!
2004-01-26 13:33:20 Changing from WatchingLiveTV to None



I'll leave it up to the experts.



More information about the mythtv-dev mailing list