Opened 7 years ago

Closed 6 years ago

Last modified 6 years ago

#11202 closed Bug Report - Crash (fixed)

channel scanning segfaults on analog tuner of pchdtv5500

Reported by: thomas.epperson@… Owned by: danielk
Priority: minor Milestone: 0.27
Component: MythTV - Channel Scanner Version: 0.25.2
Severity: medium Keywords: pchdtv5500, segfault, channel scan
Cc: Ticket locked: no

Description

Mythtv version is mythtv-0.25.2+fixes.20120802.46cab93

I have experienced this segfault everytime I try to scan for channels on the analog tuner of my PCHDTV5500 card. I am using kubuntu-12.04 and am scanning on the v4l /dev/video0 card. Attached is a core dump of the program.

Change History (6)

comment:1 Changed 7 years ago by thomas.epperson@…

I'm attaching a backtrace from the core dump.

Program terminated with signal 11, Segmentation fault.
#0  0x00007f1879f2955c in TVRec::IsBusy(TunedInputInfo*, int) const () from /usr/lib/libmythtv-0.25.so.0
(gdb) bt
#0  0x00007f1879f2955c in TVRec::IsBusy(TunedInputInfo*, int) const () from /usr/lib/libmythtv-0.25.so.0
#1  0x00007f1879e9b48f in ?? () from /usr/lib/libmythtv-0.25.so.0
#2  0x00007f1879f87590 in ?? () from /usr/lib/libmythtv-0.25.so.0
#3  0x00007f1879f80e44 in ?? () from /usr/lib/libmythtv-0.25.so.0
#4  0x00007f1879f8041c in ?? () from /usr/lib/libmythtv-0.25.so.0
#5  0x00007f1879eb95ed in ?? () from /usr/lib/libmythtv-0.25.so.0
#6  0x00007f1879eb98c3 in ?? () from /usr/lib/libmythtv-0.25.so.0
#7  0x00007f1879ecac4e in ?? () from /usr/lib/libmythtv-0.25.so.0
#8  0x00007f1879ecb689 in ?? () from /usr/lib/libmythtv-0.25.so.0
#9  0x00007f187955ec27 in MThread::run() () from /usr/lib/libmythbase-0.25.so.0
#10 0x00007f18774d3fcb in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#11 0x00007f1871977e9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#12 0x00007f1876c73cbd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#13 0x0000000000000000 in ?? ()

comment:2 in reply to:  1 Changed 7 years ago by thomas.epperson@…

Replying to thomas.epperson@…:

I didn't do that core dump with the right stuff installed. Looks like a null pointer to a TVRec object.

Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `mythtv-setup'.
Program terminated with signal 11, Segmentation fault.
#0  TVRec::IsBusy (this=0x0, busy_input=0x7f20b6dad150, time_buffer=5) at tv_rec.cpp:2403
2403        if (!channel)
(gdb) bt
#0  TVRec::IsBusy (this=0x0, busy_input=0x7f20b6dad150, time_buffer=5) at tv_rec.cpp:2403
#1  0x00007f212186a0cf in ChannelBase::IsInputAvailable (this=0x3863fe0, inputid=7, mplexid_restriction=@0x7f20b6dad45c: 0)
    at channelbase.cpp:522
#2  0x00007f2121956140 in V4LChannel::SwitchToInput (this=0x3863fe0, inputnum=7, setstarting=false) at v4lchannel.cpp:768
#3  0x00007f212194f9f4 in V4LChannel::Tune (this=0x3863fe0, frequency=55250000, inputname=...) at v4lchannel.cpp:504
#4  0x00007f212194efcc in V4LChannel::Tune (this=<optimized out>, tuning=..., inputname=...) at v4lchannel.cpp:479
#5  0x00007f212188808d in ChannelScanSM::Tune (this=0x38651d0, transport=...) at channelscan/channelscan_sm.cpp:1644
#6  0x00007f2121888363 in ChannelScanSM::ScanTransport (this=0x38651d0, transport=...) at channelscan/channelscan_sm.cpp:1675
#7  0x00007f21218996ee in ChannelScanSM::HandleActiveScan (this=0x38651d0) at channelscan/channelscan_sm.cpp:1586
#8  0x00007f212189a129 in ChannelScanSM::run (this=0x38651d0) at channelscan/channelscan_sm.cpp:1465
#9  0x00007f2120f7e377 in MThread::run (this=0x38141c0) at mthread.cpp:319
#10 0x00007f211eef3fcb in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#11 0x00007f211ab37e9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#12 0x00007f211e693cbd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#13 0x0000000000000000 in ?? ()

comment:3 Changed 7 years ago by thomas.epperson@…

Here is part of the verbose output of mythtv-setup -v all

2012-10-27 23:39:04.825066 I  SetPage(Scanning)
2012-10-27 23:39:04.825117 I  SWiz: SetPage(): type(2) cardid(7) inputname(Television)
2012-10-27 23:39:04.827038 I  V4LChannel(/dev/video0): Device name 'pcHDTV HD5500 HDTV' driver 'cx8800'.
2012-10-27 23:39:04.827066 I  V4LChannel(/dev/video0): v4l2: 1 stream io: 0 std io: 1 async io: 0 tuner 1 sliced vbi 0
2012-10-27 23:39:04.847339 I  ChannelBase(7): Input #7: 'Television' schan(3) sourceid(3) ccid(7)
2012-10-27 23:39:04.847347 I  ChannelBase(7): Input #8: 'Composite1' schan(0) sourceid(4) ccid(7)
2012-10-27 23:39:04.847353 I  ChannelBase(7): Input #9: 'S-Video' schan(0) sourceid(4) ccid(7)
2012-10-27 23:39:04.847359 I  ChannelBase(7): Current Input #8: 'Composite1'
2012-10-27 23:39:04.847874 I  Global TVFormat Setting 'NTSC'
2012-10-27 23:39:04.847891 I  V4LChannel(/dev/video0): Input #7: 'Television' schan(3) tun() v4l1(Unknown) v4l2(NTSC)
2012-10-27 23:39:04.847898 I  V4LChannel(/dev/video0): Input #8: 'Composite1' schan(0) tun() v4l1(Unknown) v4l2(NTSC)
2012-10-27 23:39:04.847904 I  V4LChannel(/dev/video0): Input #9: 'S-Video' schan(0) tun() v4l1(Unknown) v4l2(NTSC)
2012-10-27 23:39:04.847913 I  V4LChannel(/dev/video0): SetFormat(Default) fmt(NTSC) input(8)
2012-10-27 23:39:04.847924 I  V4LChannel(/dev/video0): SetInputAndFormat(8, NTSC) (v4l v2) input_switch: 0 mode_switch: 1
2012-10-27 23:39:04.854043 I  ChScan: Scan()
2012-10-27 23:39:04.856357 I  ChScan: ScanTransports(analog, analog, us-bcast)
2012-10-27 23:39:04.856545 I  ChannelScanSM(/dev/video0): run -- begin
2012-10-27 23:39:04.856708 I  ChannelScanSM(/dev/video0): Looked up freq table (analog, analog, us-bcast) w/68 entries
2012-10-27 23:39:04.857264 I  ChannelScanSM(/dev/video0): Transport Scan Item 'us-bcast 2' #2

So it appears it is trying to scan for the composite instead of the television input. It tries to use this input regardless of which card I select from "Input connections"

[V4L : /dev/video0 ] (Television) -> analog_channels
[V4L : /dev/video0 ] (Composite1) -> other
[V4L : /dev/video0 ] (S-Video) -> other

comment:4 Changed 7 years ago by Raymond Wagner

While any segfault should be fixed, the quick solution to your problem, as well as the proper install method, is to simply not scan analog. Pull a lineup from your Schedules Direct account.

comment:5 Changed 6 years ago by Stuart Morgan <smorgan@…>

Resolution: fixed
Status: newclosed

In 47d6ec82e54138b77e93674d279d650ef0f5d80d/mythtv:

Fix a segfault when using the Analogue Channel scanner. Fixes #11202

comment:6 Changed 6 years ago by stuartm

Milestone: unknown0.27
Note: See TracTickets for help on using tickets.