[mythtv-commits] Ticket #12932: Patch to EIT table version handling in DVBStreamData
MythTV
noreply at mythtv.org
Thu Jan 5 22:41:58 UTC 2017
#12932: Patch to EIT table version handling in DVBStreamData
-----------------------------------+-----------------------------
Reporter: Roger James <roger@…> | Owner: stuarta
Type: Patch - Bug Fix | Status: assigned
Priority: major | Milestone: 29.0
Component: MythTV - DVB | Version: Master Head
Severity: high | Resolution:
Keywords: | Ticket locked: 0
-----------------------------------+-----------------------------
Comment (by stuarta):
Just doing some testing on this "as is" to see if there are any
regressions,
and i'm reliably crashing this within about 15mins from startup. It's
crashing
here
{{{
Thread 5 "TVRecEvent" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f97b67db700 (LWP 28463)]
0x00007f97d5aae366 in QGenericAtomicOps<QBasicAtomicOps<4> >::load<int> (
_q_value=@0x25: <error reading variable>)
at /usr/include/x86_64-linux-gnu/qt5/QtCore/qgenericatomic.h:90
90 return _q_value;
}}}
Up the stack a bit
{{{
#10 0x00007f97d5cd2989 in QMap<unsigned short,
ServiceDescriptionTable*>::end (this=0x7f96f801f6b8)
at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:530
No locals.
#11 0x00007f97d5cc80d1 in DVBStreamData::Reset (this=0x7f97ac18ef30,
desired_netid=9018, desired_tsid=24640,
desired_serviceid=25664) at mpeg/dvbstreamdata.cpp:285
section = {i = 0x7f96f801f660}
table = {i = 0x7f96f801f698}
stream = {i = 0x7f96f801f1a0}
network = {i = 0x7f96f801f770}
nit_sections = std::vector of length 3, capacity 4 =
{0x7f96f83493a0, 0x7f96f81b0300, 0x7f96f8985b60}
}}}
Some digging
{{{
#11 0x00007f97d5cc80d1 in DVBStreamData::Reset (this=0x7f97ac18ef30,
desired_netid=9018, desired_tsid=24640,
desired_serviceid=25664) at mpeg/dvbstreamdata.cpp:285
285 section != (*table).sections.end();
++table)
(gdb) print *section
$12 = (ServiceDescriptionTable *&) @0x7f96f801f680: 0x0
}}}
So by my reading section is pointing to a null object.
It's the calls to end() in the iterator that are causing it to blow up.
The contents of (*table).sections also look fishy...
{{{
(gdb) print (*table).sections
$16 = {d = 0x25}
}}}
looking at the table object itself
{{{
(gdb) print (*table)
$15 = (SdtSectionsAndStatus &) @0x7f96f801f6b8: {sections = {d = 0x25},
status = {m_version = -519974397,
m_sections = std::vector of length -140285996814963, capacity
-140285996814850 = {97 'a', 95 '_',
159 '\237', 146 '\222', 80 'P', 250 '\372', 60 '<', 107 'k', 32 ' ',
193 '\301', 112 'p', 248 '\370',
96 '`', 64 '@', 35 '#', 58 ':', 112 'p', 81 'Q', 85 'U', 73 'I', 225
'\341', 159 '\237', 24 '\030',
0 '\000', 0 '\000', 0 '\000', 49 '1', 0 '\000', 1 '\001', 11 '\v',
84 'T', 2 '\002', 80 'P', 0 '\000',
77 'M', 213 '\325', 101 'e', 110 'n', 103 'g', 31 '\037', 80 'P',
111 'o', 119 'w', 101 'e', 114 'r',
32 ' ', 82 'R', 97 'a', 110 'n', 103 'g', 101 'e', 114 'r', 115 's',
58 ':', 32 ' ', 68 'D', 105 'i',
110 'n', 111 'o', 32 ' ', 83 'S', 117 'u', 112 'p', 101 'e', 114
'r', 99 'c', 104 'h', 97 'a', 114 'r',
103 'g', 101 'e', 177 '\261', 76 'L', 111 'o', 118 'v', 101 'e', 32
' ', 65 'A', 116 't', 32 ' ', 70 'F',
105 'i', 114 'r', 203 '\313', 69 'E', 19 '\023', 46 '.', 101 'e',
215 '\327', 169 '\251', 55 '7',
118 'v', 189 '\275', 185 '\271', 232 '\350', 153 '\231', 105 'i', 45
'-', 187 '\273', 90 'Z', 188 '\274',
56 '8', 191 '\277', 11 '\v', 149 '\225', 180 '\264', 117 'u', 233
'\351', 78 'N', 226 '\342', 75 'K',
213 '\325', 240 '\360', 254 '\376', 200 '\310', 61 '=', 100 'd', 109
'm', 251 '\373', 78 'N', 173 '\255',
150 '\226', 57 '9', 112 'p', 80 'P', 6 '\006', 245 '\365', 11 '\v',
11 '\v', 117 'u', 110 'n', 100 'd',
80 'P', 6 '\006', 246 '\366', 5 '\005', 12 '\f', 101 'e', 110 'n',
103 'g', 80 'P', 6 '\006', 242 '\362',
64 '@', 148 '\224', 101 'e', 110 'n', 103 'g', 80 'P', 6 '\006', 243
'\363', 20 '\024', 5 '\005',
101 'e', 110 'n', 103 'g', 126 '~', 1 '\001', 247 '\367', 84 'T', 2
'\002', 128 '\200', 0 '\000', 95 '_',
4 '\004', 0 '\000', 0 '\000', 35 '#', 58 ':', 137 '\211', 15 '\017',
0 '\000', 101 'e', 110 'n', 103 'g',
31 '\037', 1 '\001', 222 '\336', 159 '\237', 164 '\244', 42 '*', 93
']', 211 '\323', 221 '\335',
174 '\256', 240 '\360', 118 'v', 12 '\f', 196 '\304', 10 '\n', 47
'/', 54 '6', 51 '3', 57 '9', 55 '7',
55 '7', 47 '/', 48 '0', 48 '0', 49 '1'...}, static init_bits =
"\376\374\370\360\340\300\200"},
timestamp = {d = {d = 0x7f96f801f9a0}}}
}}}
That's the notes so far, work continues....
--
Ticket URL: <https://code.mythtv.org/trac/ticket/12932#comment:8>
MythTV <http://www.mythtv.org>
MythTV Media Center
More information about the mythtv-commits
mailing list