[mythtv-users] 0.22RC1 core dump

Ken Bass kbass at kenbass.com
Mon Oct 19 01:55:42 UTC 2009


Trying to use firewire with Motorola 6200.

I added my SD channel lineup and I typed in a random channel which 
happened to be one of those 'Music Choice' channels. That consists of a 
still image and streaming music. I imagine this is some odd type of 
channel. However, selecting it caused the backend to crash with a 
Floating Point Error.
I believe when selecting Watch TV, the frontend printed ' Error opening 
jump program file buffer'.

Oct 18 16:45:22 spare kernel: mythbackend[3387] trap divide error 
ip:7f2fc62a05a0 sp:7f2f86bfc868 error:0 in 
libmythtv-0.22.so.0.22.0[7f2fc5b58000+a2a000]

Basically on line 349 of recorderbase.cpp, it divides by m_videoHeight 
which is not checked for 0.

I recompiled with debug enabled and got the following:

#0  0x00007fc901f045a0 in RecorderBase::AspectChange 
(this=0x7fc8f000ab30, aspect=1, frame=0) at recorderbase.cpp:349
#1  0x00007fc901f0d855 in DTVRecorder::FindMPEG2Keyframes 
(this=0x7fc8f000ab30, tspacket=<value optimized out>) at dtvrecorder.cpp:323
#2  0x00007fc901f4f4ab in FirewireRecorder::ProcessTSPacket 
(this=0x7fc8f000ab30, tspacket=@0x7fc8bdadd00c) at firewirerecorder.cpp:144
#3  0x00007fc901f59402 in FirewireDevice::BroadcastToListeners 
(this=0x15eedb0, data=0x7fc8bdadd00c <Address 0x7fc8bdadd00c out of 
bounds>, dataSize=188) at firewiredevice.cpp:315
#4  0x00007fc901f74a55 in linux_firewire_device_tspacket_handler 
(tspacket=0x7fc8bdadd00c <Address 0x7fc8bdadd00c out of bounds>, 
len=188, dropped=<value optimized out>,
    callback_data=0x50) at linuxfirewiredevice.cpp:1002
#5  0x00000031f8208bbf in ?? () from /usr/lib64/libiec61883.so.0
#6  0x0000003aa180a310 in ?? () from /usr/lib64/libraw1394.so.11
#7  0x0000003aa1808ec8 in fw_loop_iterate () from 
/usr/lib64/libraw1394.so.11
#8  0x00007fc901f72eb2 in LinuxFirewireDevice::RunPortHandler 
(this=0x15eedb0) at linuxfirewiredevice.cpp:674
#9  0x00007fc901f74089 in linux_firewire_device_port_handler_thunk 
(param=0x7fc8f000ab30) at linuxfirewiredevice.cpp:605
#10 0x00007fc8fe9c086a in start_thread () from /lib64/libpthread.so.0
#11 0x0000003aa10de3bd in clone () from /lib64/libc.so.6
#12 0x0000000000000000 in ?? ()

This created a 0 length mpg file in the storage directory. Now it seems 
impossible to delete this file. Selecting delete and answer Yes, delete 
it, does nothing. The follow is printed by the frontend. (Not local? 
Why?) Is the zero size causing it to think it is remote so it does not 
delete it or something?

2009-10-18 21:36:58.951 Connected to database 'mythconverg' at host: 
localhost
2009-10-18 21:36:58.955 Preview Error: Previewer file 
'/mnt/store/1426_20091018213523.mpg' is not valid.
2009-10-18 21:36:58.955 Preview Error: Run() file not local: 
'/mnt/store/1426_20091018213523.mpg'
2009-10-18 21:36:58.968 Preview Error: Preview process not ok.
                        fileinfo(/mnt/store/1426_20091018213523.mpg.png) 
exists: 0 readable: 0 size: 0

Once this core dump happens, mythtv, being so smart, saves this bad 
channel into the 'starting channel' so the next run of the mythbackend 
tunes to this bad channel. The way to reset seems to be to run 
mythtv-setup and manually change the starting channel. What happened to 
the 0.20 option of forcing the starting channel to be a known channel 
every time rather than the last?


More information about the mythtv-users mailing list