[mythtv] Backend segfaulting repeatedly during recording DVB

Tj htpc at treblid.dyndns.org
Wed Feb 23 01:50:21 UTC 2005


:) I also have the same problems. Trouble is it's rater hard to debug 
and watch TV at the same time, and this crash does not happen often for me.


Ed Wildgoose wrote:

>
>
> Whilst we are talking valgrind.  I am assuming the following are 
> harmless?  Can anyone translate why they come up at all?
>
> ==20552== Thread 10:
> ==20552== Conditional jump or move depends on uninitialised value(s)
> ==20552==    at 0x1CFBD40F: __udivdi3 (in 
> /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/libgcc_s.so.1)
> ==20552==    by 0x805C9ED: EncoderLink::cacheFreeSpace() 
> (encoderlink.cpp:183)
> ==20552==    by 0x808EE7C: Scheduler::FillEncoderFreeSpaceCache() 
> (scheduler.cpp:229)
> ==20552==    by 0x8092B9D: Scheduler::RunScheduler() (scheduler.cpp:883)
> ==20552==
>
If I'm not wrong, it means you are using the variable straight away 
without initialising it. When I debug my mythbackend crash, it would 
sometimes show this line. I think that part looks legit, since that 
struct variable doesn't have any pointers inside that's invalid. but 
somehow my mythbackend will sometimes crash here.

>
> ==20552==
> ==20552== Thread 20:
> ==20552== Syscall param ioctl(generic) contains uninitialised or 
> unaddressable byte(s)
> ==20552==    at 0x1D06EA09: ioctl (in /lib/libc-2.3.4.so)
> ==20552==    by 0x1BD8D44E: DVBRecorder::SetDemuxFilters() 
> (dvbrecorder.cpp:346)
> ==20552==    by 0x1BD8EDA5: DVBRecorder::StartRecording() 
> (dvbrecorder.cpp:532)
> ==20552==    by 0x1BD36DA1: SpawnEncode(void*) (tv_rec.cpp:48)
> ==20552==  Address 0x1EF63C61 is on thread 20's stack
>
This is the part with the QValueList iterator right? Does that block 
look ok? It looks legit to me (though I am not 100% sure as I dun use QT 
containers)...  Again my mythbackend crashes here sometimes.

I changed Iterator to const_iterator and ATM still waiting for my 
mythbackend to crash and see if it makes any difference (dun think 
const_iterator will do anything though)..

While ur at it, look for the DVBRecorder destructor and change the 
delete to delete[]. This may be the cause of the crash but I'm not sure 
yet as I am still waiting for mythbackend to crash (it needs at least 
30hrs to crash). (I posted a patch with a topic of "delete vs delete[] 
in dvbrecorder").

Sad that I forgot what's heap, what's stack, etc, or whether any of this 
is applicable.

Try these three changes and see if your still having problems. Please 
post any gdb/valgrind logs when it crashes on you again. thanks.


Regards.



More information about the mythtv-dev mailing list