[mythtv] backend crash backtrace when finishing a recording

Torbjörn Jansson torbjorn.jansson at mbox200.swipnet.se
Sat Dec 10 16:32:35 EST 2005


I got one of those too.
But this was not at the end of a recording, this was from when i was about
to start livetv.

This was just after a call to change channel (QUERY_RECORDER SET_CHANNEL)
and befor getting a reply the backend segfaulted.

I was not able to do a backtrace of all threads, maybe its because i used
gdb on the coredump.

mythtv-dev-bounces at mythtv.org <> wrote:
> This happens sometimes with svn 8226 when an HDTV recording
> in progress
> is finished e.g.:
> 
> 1. exiting Live TV
> 2. deleting recording in progress
> 3. recording ends naturally
> 
> I am using FusionHDTV5 Gold with QAM for this.
> 
> Below is the backtrace. Note how the ringbuffer pointer is null.
> 
> Bolek
> 
> 
> 2005-12-10 15:23:12.552 TVRec(1): Changing from RecordingOnly to None
> [Thread -1271538768 (LWP 29211) exited]
> 2005-12-10 15:23:12.763 Finished recording Andre Rieu:
> Christmas Around
> the World: channel 1013
> 
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread -1299866704 (LWP 29215)]
> 0x010ebc17 in RingBuffer::Write (this=0x0, buf=0xb2c5e370, count=188)
> at RingBuffer.cpp:928 928         if (!writemode)
> (gdb) bt
> #0  0x010ebc17 in RingBuffer::Write (this=0x0,
> buf=0xb2c5e370, count=188)
>      at RingBuffer.cpp:928
> #1  0x014086cd in DTVRecorder::BufferedWrite (this=0x990e180,
>      tspacket=@0xb2c5e370) at dtvrecorder.cpp:167
> #2  0x0150a6dc in DVBRecorder::ProcessTSPacket (this=0x990e180,
>      tspacket=@0xb2c5e370) at dvbrecorder.cpp:805
> #3  0x0150aabe in DVBRecorder::ProcessDataTS (this=0x990e180,     
> buffer=0xb2c5b008
> "G\b@\030?\030?z?@4\211???7,,?\033\205\026\236?a?\021b\027S?\2
> 14{??i?G??u?022l????0??r\212\r\225??\016=?zV\n\021\221???E6c\2
> 24?Zi?\005??y4M\226\n\033\r\221\236??PN{$R??&?r\231\006?212V?\
> tJ\037??tV-\226\2123\216???'\nEQ\206\212\231Tn?\222??L]\002?23 
5TW?'\032=\236?Bn?\220?p???\031Bm??\b@\031?_?]\t?"...,
> len=20868) at dvbrecorder.cpp:700
> #4  0x0150f559 in DVBRecorder::StartRecording (this=0x990e180)     
> at dvbrecorder.cpp:478 #5  0x013dd566 in TVRec::RecorderThread
> (param=0x990e180) at tv_rec.cpp:1073 #6  0x00af1b80 in start_thread
> () from /lib/libpthread.so.0 #7  0x00a499ce in clone () from
> /lib/libc.so.6 (gdb)
> 
> 
> !DSPAM:439b3cbc20905508263655!
-------------- next part --------------
#0  0xb78d7c16 in RingBuffer::Write (this=0x0, buf=0xadcff0c4, count=188) at RingBuffer.cpp:928
928         if (!writemode)
(gdb) bt full
#0  0xb78d7c16 in RingBuffer::Write (this=0x0, buf=0xadcff0c4, count=188) at RingBuffer.cpp:928
        ret = -1
#1  0xb7b9d4e6 in DTVRecorder::BufferedWrite (this=0x82ee2c0, tspacket=@0xadcff0c4)
    at dtvrecorder.cpp:167
No locals.
#2  0xb7ca3d45 in DVBRecorder::ProcessTSPacket (this=0x82ee2c0, tspacket=@0xadcff0c4)
    at dvbrecorder.cpp:805
        pid = 7987
        locker = {mtx = 0x82ee3c0}
        info = (PIDInfo *) 0x85d8e60
#3  0xb7ca2829 in DVBRecorder::ProcessDataTS (this=0x82ee2c0,
    buffer=0xadcff008 "G\0203\030YÞªÛ\037éBã£Íº1:¨£g\225¢7´\026\204Ï/S¡_¸Q:\n-Ý\016ì\016:\224}\223µÙÄ\214h0Q at F»»I¶LJ¤\027Ò\004\a\214h&´X7\224\024OÔ\032\aõ\r5)¢³dS¢?x\232tD\230\206{\220^", len=4136)
    at dvbrecorder.cpp:700
        pkt = (const TSPacket *) 0xadcff0c4
        pos = 188
        end = 3948
#4  0xb7ca0910 in DVBRecorder::StartRecording (this=0x82ee2c0) at dvbrecorder.cpp:478
        len = 4136
        ok = true
#5  0xb7b78ad6 in TVRec::RecorderThread (param=0x82ee2c0) at tv_rec.cpp:1073
        recorder = (class RecorderBase *) 0x82ee2c0
#6  0xb6585341 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
#7  0xb6429fee in clone () from /lib/tls/libc.so.6
No symbol table info available.
(gdb) thread apply all bt full

Thread 20 (process 17045):
#0  0x00000246 in ?? ()
No symbol table info available.
Cannot access memory at address 0x0
0xb78d7c16      928         if (!writemode)
(gdb)


More information about the mythtv-dev mailing list