Opened 14 years ago

Closed 14 years ago

#1044 closed defect (fixed)

LCD: SegFault in live tv SVN 8553

Reported by: dan.morphis@… Owned by: danielk
Priority: minor Milestone: unknown
Component: mythtv Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Backtrace attached:

[mythtv@pvr mythtv]$ gdb mythfrontend 
GNU gdb Red Hat Linux (6.0post-0.20040223.19rh)
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) handle SIGPIPE nopass noprint
Signal        Stop      Print   Pass to program Description
SIGPIPE       No        No      No              Broken pipe
(gdb) run
Starting program: /usr/local/bin/mythfrontend 
[Thread debugging using libthread_db enabled]
[New Thread -1208874624 (LWP 11298)]
2006-01-16 00:32:00.379 Using runtime prefix = /usr/local
Detaching after fork from child process 11301.
2006-01-16 00:32:00.625 New DB connection, total: 1
2006-01-16 00:32:12.805 Total desktop dim: 800x600, with 1 screen[s].
2006-01-16 00:32:12.832 Using screen 0, 800x600 at 0,0
2006-01-16 00:32:12.837 Enabling Settings Cache.
2006-01-16 00:32:12.837 Clearing Settings Cache.
[New Thread -1211003984 (LWP 11308)]
2006-01-16 00:32:12.843 Disabling Settings Cache.
2006-01-16 00:32:12.843 Clearing Settings Cache.
2006-01-16 00:32:12.854 Current Schema Version: 1121
2006-01-16 00:32:12.854 Enabling Settings Cache.
2006-01-16 00:32:12.854 Clearing Settings Cache.
2006-01-16 00:32:12.854 mythfrontend version: 0.19.20051208-1 www.mythtv.org
2006-01-16 00:32:12.855 Enabled verbose msgs:  important general
Detaching after fork from child process 11309.
2006-01-16 00:32:13.416 Connecting to lcd server: localhost:6545 (try 1 of 10)
2006-01-16 00:32:14.656 lang0: eng
2006-01-16 00:32:14.657 lang: eng
2006-01-16 00:32:14.680 lang1: aar
2006-01-16 00:32:14.680 lang: aar
2006-01-16 00:32:14.934 Total desktop dim: 800x600, with 1 screen[s].
2006-01-16 00:32:14.936 Using screen 0, 800x600 at 0,0
2006-01-16 00:32:14.938 Switching to square mode (MythCenter)
[New Thread -1221502032 (LWP 11313)]
2006-01-16 00:32:16.604 New DB connection, total: 2
2006-01-16 00:32:16.636 Clearing Settings Cache for 'Language'.
2006-01-16 00:32:16.636 Clearing Settings Cache.
2006-01-16 00:32:16.722 Registering Internal as a media playback plugin.
2006-01-16 00:32:17.212 Disabling Settings Cache.
2006-01-16 00:32:17.213 Clearing Settings Cache.
2006-01-16 00:32:17.215 Enabling Settings Cache.
2006-01-16 00:32:17.215 Clearing Settings Cache.
2006-01-16 00:32:17.227 Registering MythDVD DVD Media Handler as a media handler
2006-01-16 00:32:17.228 Registering MythDVD VCD Media Handler as a media handler
2006-01-16 00:32:18.360 Disabling Settings Cache.
2006-01-16 00:32:18.360 Clearing Settings Cache.
2006-01-16 00:32:18.375 Enabling Settings Cache.
2006-01-16 00:32:18.375 Clearing Settings Cache.
2006-01-16 00:32:18.917 Disabling Settings Cache.
2006-01-16 00:32:18.918 Clearing Settings Cache.
2006-01-16 00:32:18.933 Enabling Settings Cache.
2006-01-16 00:32:18.933 Clearing Settings Cache.
2006-01-16 00:32:24.137 Disabling Settings Cache.
2006-01-16 00:32:24.137 Clearing Settings Cache.
2006-01-16 00:32:24.195 Enabling Settings Cache.
2006-01-16 00:32:24.195 Clearing Settings Cache.
Detaching after fork from child process 11314.
Detaching after fork from child process 11315.
2006-01-16 00:32:25.155 Registering MythMusic Media Handler as a media handler
2006-01-16 00:32:26.509 Disabling Settings Cache.
2006-01-16 00:32:26.509 Clearing Settings Cache.
2006-01-16 00:32:26.511 Enabling Settings Cache.
2006-01-16 00:32:26.511 Clearing Settings Cache.
MythWifi has been initialized
2006-01-16 00:32:27.060 Mediamonitor: Adding /dev/cdrom
2006-01-16 00:32:27.065 Starting media monitor.
[New Thread -1232614480 (LWP 11316)]
2006-01-16 00:32:27.183 Media status changed...  New status is: MEDIASTAT_OPEN old status was MEDIASTAT_NOTMOUNTED
[New Thread -1243182160 (LWP 11318)]
2006-01-16 00:32:30.857 Connecting to backend server: 192.168.77.98:6543 (try 1 of 5)
2006-01-16 00:32:30.919 Using protocol version 23
2006-01-16 00:32:30.986 TV: Attempting to change from None to WatchingLiveTV
2006-01-16 00:32:30.992 Using protocol version 23
2006-01-16 00:32:34.910 Invalid file handle when opening /store/1037_20060116003234.nuv.  6 retries remaining.
[New Thread -1253672016 (LWP 11337)]
[New Thread -1264161872 (LWP 11338)]
2006-01-16 00:32:36.619 Opening audio device '/dev/dsp'.
2006-01-16 00:32:36.619 Opening OSS audio device '/dev/dsp'.
[New Thread -1279411280 (LWP 11339)]
2006-01-16 00:32:40.102 TV: Changing from None to WatchingLiveTV
[New Thread -1307485264 (LWP 11340)]
2006-01-16 00:32:40.132 Realtime priority would require SUID as root.
2006-01-16 00:32:40.507 Video timing method: USleep with busy wait

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1243182160 (LWP 11318)]
0x06b640ab in QSocket::flush () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
(gdb) thread apply all bt full

Thread 9 (Thread -1307485264 (LWP 11340)):
#0  0x003e07a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
No symbol table info available.
#1  0x023587f6 in __nanosleep_nocancel () from /lib/tls/libc.so.6
No symbol table info available.
#2  0x02386d6a in usleep () from /lib/tls/libc.so.6
No symbol table info available.
#3  0x00afd68e in BusyWaitVideoSync::WaitForFrame (this=0xae24798, 
    sync_delay=0) at vsync.cpp:786
        cnt = 0
#4  0x00a7215f in NuppelVideoPlayer::AVSync (this=0x9b8b550)
    at NuppelVideoPlayer.cpp:1528
        diverge = -0.690493345
        buffer = (VideoFrame *) 0xab34060
        ps = kScan_Ignore
#5  0x00a73809 in NuppelVideoPlayer::DisplayNormalFrame (this=0x9b8b550)
    at NuppelVideoPlayer.cpp:1781
        frame = (VideoFrame *) 0xab34060
#6  0x00a73eaa in NuppelVideoPlayer::OutputVideoLoop (this=0x9b8b550)
    at NuppelVideoPlayer.cpp:1865
        temp_speed = 1
        fr_int = 33366
---Type <return> to continue, or q <return> to quit---
        rf_int = 16579
#7  0x00a73f85 in NuppelVideoPlayer::kickoffOutputVideoLoop (player=0x9b8b550)
    at NuppelVideoPlayer.cpp:1941
        nvp = (NuppelVideoPlayer *) 0x9b8b550
#8  0x0061098c in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#9  0x0238d7da in clone () from /lib/tls/libc.so.6
No symbol table info available.

Thread 8 (Thread -1279411280 (LWP 11339)):
#0  0x003e07a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
No symbol table info available.
#1  0x023587f6 in __nanosleep_nocancel () from /lib/tls/libc.so.6
No symbol table info available.
#2  0x02386d6a in usleep () from /lib/tls/libc.so.6
No symbol table info available.
#3  0x03a8bde8 in AudioOutputBase::OutputAudioLoop (this=0xb3bdc008)
    at audiooutputbase.cpp:772
        space_on_soundcard = 3680
        last_space_on_soundcard = 3680
        zeros = "\000"
        fragment = "Yá"
        e = {<MythEvent> = {<QCustomEvent> = {<> = {<No data fields>}, 
---Type <return> to continue, or q <return> to quit---
      d = 0x0}, message = {static null = {
        static null = <same as static member of an already seen type>, 
        d = 0x9a2d0c0, static shared_null = 0x9a2d0c0}, d = 0x9a2d0c0, 
      static shared_null = 0x9a2d0c0}, extradata = {<QValueList<QString>> = {
        sh = 0xaf66670}, <No data fields>}}, error_msg = 0x0, 
  elasped_seconds = 0, written_bytes = 0, brate = 0, freq = 0, prec = 0, 
  chan = 0}
#4  0x03a8c5b9 in AudioOutputBase::kickoffOutputAudioLoop (player=0xb3bdc008)
    at audiooutputbase.cpp:865
No locals.
#5  0x0061098c in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#6  0x0238d7da in clone () from /lib/tls/libc.so.6
No symbol table info available.

Thread 7 (Thread -1264161872 (LWP 11338)):
#0  0x003e07a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
No symbol table info available.
#1  0x023587f6 in __nanosleep_nocancel () from /lib/tls/libc.so.6
No symbol table info available.
#2  0x02386d6a in usleep () from /lib/tls/libc.so.6
No symbol table info available.
#3  0x00907493 in RingBuffer::safe_read (this=0x9ba5728, fd=20, 
---Type <return> to continue, or q <return> to quit---
    data=0xb3fe57a7, sz=128000) at RingBuffer.cpp:392
        ret = 0
        tot = 0
        errcnt = 0
        zerocnt = 2
#4  0x00908472 in RingBuffer::ReadAheadThread (this=0x9ba5728)
    at RingBuffer.cpp:666
        totfree = 128000
        ret = 0
        used = 1395277
        loops = 0
#5  0x009081b1 in RingBuffer::StartReader (type=0x9ba5728)
    at RingBuffer.cpp:597
        rbuffer = (RingBuffer *) 0x9ba5728
#6  0x0061098c in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#7  0x0238d7da in clone () from /lib/tls/libc.so.6
No symbol table info available.

Thread 6 (Thread -1253672016 (LWP 11337)):
#0  0x003e07a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
No symbol table info available.
#1  0x00613b15 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
---Type <return> to continue, or q <return> to quit---
   from /lib/tls/libpthread.so.0
No symbol table info available.
#2  0x06c07290 in QWaitCondition::wait ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#3  0x00a857f7 in VideoBuffers::WaitForAvailable (this=0x9bab08c, w=10)
    at videobuffers.h:94
No locals.
#4  0x00a845f1 in VideoOutput::WaitForAvailable (this=0x9baafb8, w=10)
    at videooutbase.h:215
No locals.
#5  0x00a6ef18 in NuppelVideoPlayer::GetFrame (this=0x9b8b550, onlyvideo=0, 
    unsafe=false) at NuppelVideoPlayer.cpp:998
        ret = false
#6  0x00a7647c in NuppelVideoPlayer::StartPlaying (this=0x9b8b550)
    at NuppelVideoPlayer.cpp:2451
        output_video = 2987482032
        decoder_thread = 3041295280
#7  0x00a30e49 in SpawnDecode (param=0x9b8b550) at tv_play.cpp:189
        nvp = (NuppelVideoPlayer *) 0x9b8b550
#8  0x0061098c in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#9  0x0238d7da in clone () from /lib/tls/libc.so.6
---Type <return> to continue, or q <return> to quit---
No symbol table info available.

Thread 5 (Thread -1243182160 (LWP 11318)):
#0  0x06b640ab in QSocket::flush () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#1  0x06c59fdb in flush () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#2  0x0396fe29 in operator<< (s=@0xb5e68880, 
    f=0x6c59fc0 <flush(QTextStream&)>) at qtextstream.h:302
No locals.
#3  0x0396bb88 in LCD::sendToServer (this=0x9a85110, someText=@0xb5e68930)
    at lcddevice.cpp:215
        os = <incomplete type>
#4  0x0396d7cd in LCD::setChannelProgress (this=0x9a85110, value=0.958999991)
    at lcddevice.cpp:393
No locals.
#5  0x00a3ecb2 in TV::RunTV (this=0x9b712c0) at tv_play.cpp:1596
        curTime = {d = {jd = 2453752}, t = {ds = 2118001}}
        progress = 0.958999991
        lcd = (class LCD *) 0x9a85110
        doHandle = false
        keypressed = (QKeyEvent *) 0x610970
        updatecheck = 20
---Type <return> to continue, or q <return> to quit---
#6  0x00a3d88d in TV::EventThread (param=0x9b712c0) at tv_play.cpp:1364
        thetv = (class TV *) 0x9b712c0
#7  0x0061098c in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#8  0x0238d7da in clone () from /lib/tls/libc.so.6
No symbol table info available.

Thread 4 (Thread -1232614480 (LWP 11316)):
#0  0x003e07a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
No symbol table info available.
#1  0x00613b15 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
   from /lib/tls/libpthread.so.0
No symbol table info available.
#2  0x068fec77 in QThread::exit () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#3  0x068fed82 in QThread::msleep () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#4  0x03ab1dbb in MonitorThread::run (this=0x9b48910)
    at mythmediamonitor.cpp:77
No locals.
#5  0x068fe8fa in QThreadInstance::start ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#6  0x0061098c in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#7  0x0238d7da in clone () from /lib/tls/libc.so.6
No symbol table info available.

Thread 3 (Thread -1221502032 (LWP 11313)):
#0  0x003e07a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
No symbol table info available.
#1  0x006161ab in __read_nocancel () from /lib/tls/libpthread.so.0
No symbol table info available.
#2  0x002e39ec in lirc_nextcode (code=0xb7315a18) at lirc_client.c:1498
        packet_size = 100
        end_len = 0
        len = -512
        end = 0x0
        c = 9 '\t'
#3  0x03abb512 in LircClient::Process (this=0x9b3ecd0) at lirc.cpp:68
        code = 0x0
        ir = 0x0
        ret = 0
#4  0x03a426ce in SpawnLirc (param=0x9afe010) at mythdialogs.cpp:53
        main_window = (MythMainWindow *) 0x9afe010
        config_file = {static null = {
---Type <return> to continue, or q <return> to quit---
    static null = <same as static member of an already seen type>, 
    d = 0x9a2d0c0, static shared_null = 0x9a2d0c0}, d = 0x9b3e948, 
  static shared_null = 0x9a2d0c0}
        program = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x9a2d0c0, static shared_null = 0x9a2d0c0}, d = 0x9b3eaa0, 
  static shared_null = 0x9a2d0c0}
        cl = (class LircClient *) 0x9b3ecd0
#5  0x0061098c in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#6  0x0238d7da in clone () from /lib/tls/libc.so.6
No symbol table info available.

Thread 2 (Thread -1211003984 (LWP 11308)):
#0  0x003e07a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
No symbol table info available.
#1  0x00613922 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/tls/libpthread.so.0
No symbol table info available.
#2  0x06c072e9 in QWaitCondition::wait ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#3  0x0398ea30 in MythContext::waitPrivRequest (this=0x9a73e88)
---Type <return> to continue, or q <return> to quit---
    at mythcontext.cpp:2673
No locals.
#4  0x0806ee3e in run_priv_thread (data=0x0) at main.cpp:648
No locals.
#5  0x0061098c in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#6  0x0238d7da in clone () from /lib/tls/libc.so.6
No symbol table info available.

Thread 1 (Thread -1208874624 (LWP 11298)):
#0  0x003e07a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
No symbol table info available.
#1  0x023587f6 in __nanosleep_nocancel () from /lib/tls/libc.so.6
No symbol table info available.
#2  0x02386d6a in usleep () from /lib/tls/libc.so.6
No symbol table info available.
#3  0x0806bf66 in startTV () at main.cpp:269
        tv = (class TV *) 0x9b712c0
        quitAll = false
        showDialogs = true
#4  0x0806c258 in TVMenuCallback (data=0x9a73e88, selection=@0x9b558a8)
    at main.cpp:316
        sel = {static null = {
---Type <return> to continue, or q <return> to quit---
    static null = <same as static member of an already seen type>, 
    d = 0x9a2d0c0, static shared_null = 0x9a2d0c0}, d = 0x9ba5368, 
  static shared_null = 0x9a2d0c0}
#5  0x039cdeaa in ThemedMenuPrivate::handleAction (this=0x9b557b0, 
    action=@0x9baafb0) at themedmenu.cpp:2497
        ok = true
#6  0x039cc3a1 in ThemedMenuPrivate::keyPressHandler (this=0x9b557b0, 
    e=0xbff53000) at themedmenu.cpp:2325
        it = {node = 0x9baafa8}
        action = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x9a2d0c0, static shared_null = 0x9a2d0c0}, d = 0x9b3e7b8, 
  static shared_null = 0x9a2d0c0}
        i = 0
        lastbutton = (ThemedButton *) 0x9b7d240
        oldrow = 0
        handled = true
        actions = {<QValueList<QString>> = {sh = 0x9b8c9d8}, <No data fields>}
#7  0x039cf4e4 in ThemedMenu::keyPressEvent (this=0x9b78330, e=0xbff53000)
    at themedmenu.cpp:2695
No locals.
#8  0x0699db0d in QWidget::event () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#9  0x0690b16f in QApplication::internalNotify ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#10 0x0690ac64 in QApplication::notify ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#11 0x03a5d886 in QApplication::sendEvent (receiver=0x9b78330, 
    event=0xbff53000) at qapplication.h:515
No locals.
#12 0x03a4ac65 in MythMainWindow::customEvent (this=0x9afe010, ce=0x9b56d48)
    at mythdialogs.cpp:845
        k = 4100
        ascii = 0
        key = {<> = {<No data fields>}, txt = {static null = {
      static null = <same as static member of an already seen type>, 
      d = 0x9a2d0c0, static shared_null = 0x9a2d0c0}, d = 0x9a2d0c0, 
    static shared_null = 0x9a2d0c0}, k = 4100, s = 0, a = 0 '\0', accpt = 1, 
  autor = 0, c = 1}
        mod = 0
        text = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x9a2d0c0, static shared_null = 0x9a2d0c0}, d = 0x9a2d0c0, 
  static shared_null = 0x9a2d0c0}
---Type <return> to continue, or q <return> to quit---
        key_target = (struct QObject *) 0x9b78330
        lke = (class LircKeycodeEvent *) 0x9b56d48
        keycode = 4100
#13 0x06964f9c in QObject::event () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#14 0x0699da3f in QWidget::event () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#15 0x0690b16f in QApplication::internalNotify ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#16 0x0690a76e in QApplication::notify ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#17 0x0690c066 in QApplication::sendPostedEvents ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#18 0x0690bee6 in QApplication::sendPostedEvents ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#19 0x068b48cd in QEventLoop::processEvents ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#20 0x0691d5f8 in QEventLoop::enterLoop ()
---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.
#21 0x0690b421 in QApplication::enter_loop ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
No symbol table info available.
#22 0x03a4ba77 in MythDialog::exec (this=0x9b78330) at mythdialogs.cpp:1047
        res = 61127168
#23 0x0806d14e in RunMenu (themedir=
      {static null = {static null = <same as static member of an already seen type>, d = 0x9a2d0c0, static shared_null = 0x9a2d0c0}, d = 0x9a961b8, static shared_null = 0x9a2d0c0}) at main.cpp:480
        exitstatus = 0
#24 0x080721a1 in main (argc=1, argv=0xbff538e4) at main.cpp:1016
        geometry = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x9a2d0c0, static shared_null = 0x9a2d0c0}, d = 0x9a43f08, 
  static shared_null = 0x9a2d0c0}
        a = <incomplete type>
        logfile = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x9a2d0c0, static shared_null = 0x9a2d0c0}, d = 0x9a74190, 
  static shared_null = 0x9a2d0c0}
        pluginname = {static null = {
---Type <return> to continue, or q <return> to quit---
    static null = <same as static member of an already seen type>, 
    d = 0x9a2d0c0, static shared_null = 0x9a2d0c0}, d = 0x9a742b0, 
  static shared_null = 0x9a2d0c0}
        finfo = {fn = {static null = {
      static null = <same as static member of an already seen type>, 
      d = 0x9a2d0c0, static shared_null = 0x9a2d0c0}, d = 0x9a72558, 
    static shared_null = 0x9a2d0c0}, fic = 0x0, cache = true, symLink = false}
        binname = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x9a2d0c0, static shared_null = 0x9a2d0c0}, d = 0x9a72570, 
  static shared_null = 0x9a2d0c0}
        ResetSettings = false
        logfd = -1
        fileprefix = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x9a2d0c0, static shared_null = 0x9a2d0c0}, d = 0x9a71e60, 
  static shared_null = 0x9a2d0c0}
        dir = <incomplete type>
        priv_thread = 3083963312
        status = 0
        themename = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x9a2d0c0, static shared_null = 0x9a2d0c0}, d = 0x9b1ae98, 
---Type <return> to continue, or q <return> to quit---
  static shared_null = 0x9a2d0c0}
        randomtheme = false
        themedir = {static null = {
    static null = <same as static member of an already seen type>, 
    d = 0x9a2d0c0, static shared_null = 0x9a2d0c0}, d = 0x9a961b8, 
  static shared_null = 0x9a2d0c0}
        mainWindow = (class MythMainWindow *) 0x9afe010
        pmanager = (MythPluginManager *) 0x9b48928
        mon = (class MediaMonitor *) 0x9b488e0
        exitstatus = 108267126
#0  0x06b640ab in QSocket::flush () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
(gdb) 

Attachments (1)

1044.patch (4.5 KB) - added by danielk 14 years ago.
possible fix

Download all attachments as: .zip

Change History (10)

comment:1 Changed 14 years ago by paulh

I've seen this myself but very rarely its very unpredictable. The one time I got a BT it looked similar to yours though.

Looks like its a problem with the LCD object. You could try disabling the LCD to see if the problem goes away to verify that. I'm wondering if maybe two threads are trying to update the LCD at the same time. One thing that has changed recently is the channel progress on the LCD is updated more often now. Changed from once every 60 seconds to once every second which makes it more likely that a clash will occur.

If you could change the #define at the top of lcddevice.cpp to

#define LCD_DEVICE_DEBUG 10

and recompile then rerun mythfrontend and attach the last part of the log just before the crash it may help to figure out what the LCD was doing just before the crash.

Also do you only get the segfault during live TV and not while playing back a recording?

comment:2 Changed 14 years ago by danielk

Milestone: unknown
Owner: changed from Isaac Richards to danielk
Summary: SegFault in live tv SVN 8553LCD: SegFault in live tv SVN 8553
Version: head

Changed 14 years ago by danielk

Attachment: 1044.patch added

possible fix

comment:3 Changed 14 years ago by danielk

Please test the attached patch. It adds some locking which should prevent the OSD from being updated by multiple threads at the same time.

comment:4 Changed 14 years ago by skd5aner@…

Paul,

Not sure if it's related, and I mentioned it on the dev list once (http://www.gossamer-threads.com/lists/mythtv/dev/164324?#164324) but every now and then I'll see what appears to be the old format presented on the LCD. I'm not sure if this could be related to the two threads you mentioned or not, but somehow it'll display show information in the old format for a single "frame" so to speak... happens every now and then.

comment:5 Changed 14 years ago by dan.morphis@…

I can confirm that the problem is with the LCD stuff. I disabled it per your suggestion, and haven't had a segfault since. I will test the patch tomorrow.

-dan

comment:6 Changed 14 years ago by paulh

After a week of trying I have not been able to reproduce the segfault using current unpatched svn so I'm not going to be able to provide any useful feed on whether the patch fixes anything or not :(

comment:7 Changed 14 years ago by danielk

paulh, it is sufficient to state that the patch does not break anything for me to apply it. It really should fix the problem, I just don't have an LCD to test with.

comment:8 Changed 14 years ago by paulh

danielk, OK I've given the patch a try it doesn't seem to break anything.

comment:9 Changed 14 years ago by danielk

Resolution: fixed
Status: newclosed

(In [8720]) Fixes #1044, by adding some basic locking to LCD class.

Note: See TracTickets for help on using tickets.