Opened 20 years ago
Closed 20 years ago
Last modified 20 years ago
#577 closed defect (fixed)
"QGVector::insert: Index 0 out of range" errors
| Reported by: | Owned by: | danielk | |
|---|---|---|---|
| Priority: | minor | Milestone: | unknown |
| Component: | dvb | Version: | head |
| Severity: | low | Keywords: | |
| Cc: | Ticket locked: | no |
Description
svn versions since at least 3 weeks generate many of these errors (at least 2 per second while active eit-scanning).
I use 3 DVB-cards in Berlin, Germany. The errors are not exclusevily generated by eit-scanning. I get them also in LiveTV with useonairguide=0 for all channels.
But the following four backtraces have event data. Two of them kind of fail and the other two not. Unfortunately I don't see any difference in the Data.
I have a breakpoint on QGVector::insert and continue afterwards. For stepping I'll need QT with debug symbols.
These two generate the error message:
Breakpoint 16, 0xb6b5d176 in QGVector::insert () from /usr/qt/3/lib/libqt-mt.so.3
(gdb) bt full
#0 0xb6b5d176 in QGVector::insert () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#1 0xb7c36b0d in QPtrVector<unsigned char>::insert (this=0xae9b4a70, i=0, d=0xae9b518e "Nz") at qptrvector.h:67
No locals.
#2 0xb7c254d2 in SIParser::ParseDVBEIT (this=0x8167a20, head=0xae9b4bc0, buffer=0xae9b4e88 "\003\005!\024\020a\"#Ñ®\a5", size=1139)
at siparser.cpp:1478
lang = {static null = {static null = <same as static member of an already seen type>, d = 0x80ea458,
static shared_null = 0x80ea458}, d = 0x837d5e0, static shared_null = 0x80ea458}
prio = 5
desc_number = 0
last_desc_number = 0
bd4D_prio = 5
bd4D_data = (uint8_t *) 0xae9b5151 "M;deu\031\005Hör mal, wer da hämmert!\035\005Comedyserie, USA 1991/1999\212"
bd4D_lang = {static null = {static null = <same as static member of an already seen type>, d = 0x80ea458,
static shared_null = 0x80ea458}, d = 0x837e0c0, static shared_null = 0x80ea458}
exEvInfos = {<> = {<No data fields>}, <No data fields>}
bd4E_prio = -1
bd4E_lang = {static null = {static null = <same as static member of an already seen type>, d = 0x80ea458,
static shared_null = 0x80ea458}, d = 0x80ea458, static shared_null = 0x80ea458}
last_table_id = 97 'a'
des_pos = 774
e = {SourcePID = 0, TransportID = 773, NetworkID = 8468, ServiceID = 16418, EventID = 8773, Stereo = false, HDTV = false,
SubTitled = false, ETM_Location = 0, ATSC = false, PartNumber = 0, PartTotal = 0, StartTime = {d = {jd = 2453679}, t = {
ds = 32700000}}, EndTime = {d = {jd = 2453679}, t = {ds = 34500000}}, OriginalAirDate = {jd = 0}, LanguageCode = {
static null = {static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458},
d = 0x837d7a8, static shared_null = 0x80ea458}, Event_Name = {static null = {
static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458}, d = 0x837e0a8,
static shared_null = 0x80ea458}, Event_Subtitle = {static null = {static null = <same as static member of an already seen type>,
d = 0x80ea458, static shared_null = 0x80ea458}, d = 0x837e078, static shared_null = 0x80ea458}, Description = {static null = {
static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458}, d = 0x837e090,
static shared_null = 0x80ea458}, ContentDescription = {static null = {
static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458}, d = 0x837db68,
static shared_null = 0x80ea458}, Year = {static null = {static null = <same as static member of an already seen type>,
d = 0x80ea458, static shared_null = 0x80ea458}, d = 0x837d5c8, static shared_null = 0x80ea458}, CategoryType = {static null = {
static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458}, d = 0x837a2c0,
static shared_null = 0x80ea458}, Actors = {<QValueList<QString>> = {sh = 0x837a6a8}, <No data fields>}, Credits = {
sh = 0x8261918}}
last_segment_number = 16 '\020'
pos = 713
descriptor_length = 205
#3 0xb7c1efa4 in SIParser::ParseTable (this=0x8167a20, buffer=0xae9b4e80 "`ôx@\"ß\020ø\003\005!\024\020a\"#Ñ®\a5", size=1147, pid=18)
at siparser.cpp:562
head = {table_id = 96 '`', section_length = 1144, table_id_ext = 16418, current_next = true, version = 15 '\017',
section_number = 16 '\020', section_last = 248 'ø'}
#4 0xb7c3d4ff in DVBSIParser::StartSectionReader (this=0x8167a20) at dvbsiparser.cpp:299
rsz = 1147
i = 5
ret = 5
buffer = "`ôx@\"ß\020ø\003\005!\024\020a\"#Ñ®\a5\000\0000\000\002«M8deu\026\005Ein Trio zum Anbeißen\035\005Comedyserie, USA 1998/2001\000\000Ný\002deu\000÷\005Berg hat nach wie vor Besuch von seiner Mutter und hofft immer noch, dass sie schon bald einen neuen Mann k"...
processed = true
#5 0xb7c3acf5 in DVBSIParser::SystemInfoThread (param=0x8167a20) at dvbsiparser.cpp:100
siparser = (DVBSIParser *) 0x8167a20
#6 0xb64edcd2 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#7 0xb64ede42 in pthread_start_thread_event () from /lib/libpthread.so.0
No symbol table info available.
#8 0xb638c4ea in clone () from /lib/libc.so.6
No symbol table info available.
(gdb) c
Continuing.
QGVector::insert: Index 0 out of range
Breakpoint 16, 0xb6b5d176 in QGVector::insert () from /usr/qt/3/lib/libqt-mt.so.3
(gdb) bt full
#0 0xb6b5d176 in QGVector::insert () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#1 0xb7c36b0d in QPtrVector<unsigned char>::insert (this=0xae9b4a70, i=0, d=0xae9b554e "N,") at qptrvector.h:67
No locals.
#2 0xb7c254d2 in SIParser::ParseDVBEIT (this=0x8167a20, head=0xae9b4bc0, buffer=0xae9b4e88 "\003\005!\024\030a\"\205Ñ®\t\005",
size=2613) at siparser.cpp:1478
lang = {static null = {static null = <same as static member of an already seen type>, d = 0x80ea458,
static shared_null = 0x80ea458}, d = 0xadc7a1f0, static shared_null = 0x80ea458}
prio = 5
desc_number = 0
last_desc_number = 0
bd4D_prio = 5
bd4D_data = (uint8_t *) 0xae9b550e "M>deu\026\005Oggy & die Kakerlaken#\005Zeichentrickserie, F/D 1997/1998\212"
bd4D_lang = {static null = {static null = <same as static member of an already seen type>, d = 0x80ea458,
static shared_null = 0x80ea458}, d = 0xade1ee90, static shared_null = 0x80ea458}
exEvInfos = {<> = {<No data fields>}, <No data fields>}
bd4E_prio = -1
bd4E_lang = {static null = {static null = <same as static member of an already seen type>, d = 0x80ea458,
static shared_null = 0x80ea458}, d = 0x80ea458, static shared_null = 0x80ea458}
last_table_id = 97 'a'
des_pos = 1734
e = {SourcePID = 0, TransportID = 773, NetworkID = 8468, ServiceID = 16411, EventID = 8916, Stereo = false, HDTV = false,
SubTitled = false, ETM_Location = 0, ATSC = false, PartNumber = 0, PartTotal = 0, StartTime = {d = {jd = 2453679}, t = {
ds = 40800000}}, EndTime = {d = {jd = 2453679}, t = {ds = 41400000}}, OriginalAirDate = {jd = 0}, LanguageCode = {
static null = {static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458},
d = 0xadc470f0, static shared_null = 0x80ea458}, Event_Name = {static null = {
static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xae089e70,
static shared_null = 0x80ea458}, Event_Subtitle = {static null = {static null = <same as static member of an already seen type>,
d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xadcd3320, static shared_null = 0x80ea458}, Description = {static null = {
static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xadc52a40,
static shared_null = 0x80ea458}, ContentDescription = {static null = {
static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xade06818,
static shared_null = 0x80ea458}, Year = {static null = {static null = <same as static member of an already seen type>,
d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xadc52a28, static shared_null = 0x80ea458}, CategoryType = {static null = {
static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xadccb450,
static shared_null = 0x80ea458}, Actors = {<QValueList<QString>> = {sh = 0xadcd3310}, <No data fields>}, Credits = {
sh = 0xade29bf8}}
last_segment_number = 24 '\030'
pos = 1670
descriptor_length = 130
#3 0xb7c1efa4 in SIParser::ParseTable (this=0x8167a20, buffer=0xae9b4e80 "`ú:@\033ß\030ø\003\005!\024\030a\"\205Ñ®\t\005",
size=2621, pid=18) at siparser.cpp:562
head = {table_id = 96 '`', section_length = 2618, table_id_ext = 16411, current_next = true, version = 15 '\017',
section_number = 24 '\030', section_last = 248 'ø'}
#4 0xb7c3d4ff in DVBSIParser::StartSectionReader (this=0x8167a20) at dvbsiparser.cpp:299
rsz = 2621
i = 5
ret = 5
buffer = "`ú:@\033ß\030ø\003\005!\024\030a\"\205Ñ®\t\005\000\000\020\000\002jMHdeu#\005Käpt'n Nobart und die Piratenbande \005Zeichentrickserie, L/F/D 1997\000\000Ný\002deu\000÷\005Ein Geisterschiff taucht auf. Prima, denken die Piraten. Denn auf solchen Schiffen befindet"...
processed = true
#5 0xb7c3acf5 in DVBSIParser::SystemInfoThread (param=0x8167a20) at dvbsiparser.cpp:100
siparser = (DVBSIParser *) 0x8167a20
#6 0xb64edcd2 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#7 0xb64ede42 in pthread_start_thread_event () from /lib/libpthread.so.0
No symbol table info available.
#8 0xb638c4ea in clone () from /lib/libc.so.6
No symbol table info available.
(gdb) c
Continuing.
QGVector::insert: Index 0 out of range
but the next two not:
Breakpoint 16, 0xb6b5d176 in QGVector::insert () from /usr/qt/3/lib/libqt-mt.so.3
(gdb) bt full
#0 0xb6b5d176 in QGVector::insert () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#1 0xb7c36b0d in QPtrVector<unsigned char>::insert (this=0xae9b4a70, i=0, d=0xae9b5c35 "Ný\002deu") at qptrvector.h:67
No locals.
#2 0xb7c254d2 in SIParser::ParseDVBEIT (this=0x8167a20, head=0xae9b4bc0, buffer=0xae9b4e88 "\003\005!\024!a#JÑ®\022\020", size=4040)
at siparser.cpp:1478
lang = {static null = {static null = <same as static member of an already seen type>, d = 0x80ea458,
static shared_null = 0x80ea458}, d = 0xae08a168, static shared_null = 0x80ea458}
prio = 5
desc_number = 0
last_desc_number = 2
bd4D_prio = 5
bd4D_data = (uint8_t *) 0xae9b5c11 "M\"deu\n\005One Piece\023\005Animeserie, 1999\212"
bd4D_lang = {static null = {static null = <same as static member of an already seen type>, d = 0x80ea458,
static shared_null = 0x80ea458}, d = 0xadcd39e8, static shared_null = 0x80ea458}
exEvInfos = {<> = {<No data fields>}, <No data fields>}
bd4E_prio = -1
bd4E_lang = {static null = {static null = <same as static member of an already seen type>, d = 0x80ea458,
static shared_null = 0x80ea458}, d = 0x80ea458, static shared_null = 0x80ea458}
last_table_id = 97 'a'
des_pos = 3501
e = {SourcePID = 0, TransportID = 773, NetworkID = 8468, ServiceID = 16406, EventID = 9162, Stereo = false, HDTV = false,
SubTitled = false, ETM_Location = 0, ATSC = false, PartNumber = 0, PartTotal = 0, StartTime = {d = {jd = 2453679}, t = {
ds = 54600000}}, EndTime = {d = {jd = 2453679}, t = {ds = 56400000}}, OriginalAirDate = {jd = 0}, LanguageCode = {
static null = {static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458},
d = 0xadc83860, static shared_null = 0x80ea458}, Event_Name = {static null = {
static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xade4d4c0,
static shared_null = 0x80ea458}, Event_Subtitle = {static null = {static null = <same as static member of an already seen type>,
d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xadc36558, static shared_null = 0x80ea458}, Description = {static null = {
static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xadccb080,
static shared_null = 0x80ea458}, ContentDescription = {static null = {
static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xadcd3a10,
static shared_null = 0x80ea458}, Year = {static null = {static null = <same as static member of an already seen type>,
d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xadcca9b0, static shared_null = 0x80ea458}, CategoryType = {static null = {
static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xae089cf8,
static shared_null = 0x80ea458}, Actors = {<QValueList<QString>> = {sh = 0xae0c92a8}, <No data fields>}, Credits = {
sh = 0xadc5cbb8}}
last_segment_number = 33 '!'
pos = 3465
descriptor_length = 571
#3 0xb7c1efa4 in SIParser::ParseTable (this=0x8167a20, buffer=0xae9b4e80 "`ÿÍ@\026ß ø\003\005!\024!a#JÑ®\022\020", size=4048, pid=18)
at siparser.cpp:562
head = {table_id = 96 '`', section_length = 4045, table_id_ext = 16406, current_next = true, version = 15 '\017',
section_number = 32 ' ', section_last = 248 'ø'}
#4 0xb7c3d4ff in DVBSIParser::StartSectionReader (this=0x8167a20) at dvbsiparser.cpp:299
rsz = 4048
i = 5
ret = 3
buffer = "`ÿÍ@\026ß ø\003\005!\024!a#JÑ®\022\020\000\000\005\000\002GM'deu\n\005Pokito TV\030\005Kindermagazin, D 2005\000\000Ný\002deu\000÷\005Schule aus - Pokito an! Das dürft ihr auf keinen Fall verpassen, hier erfahrt ihr täglich wichtige Anime Infos, erlebt spann"...
processed = true
#5 0xb7c3acf5 in DVBSIParser::SystemInfoThread (param=0x8167a20) at dvbsiparser.cpp:100
siparser = (DVBSIParser *) 0x8167a20
#6 0xb64edcd2 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#7 0xb64ede42 in pthread_start_thread_event () from /lib/libpthread.so.0
No symbol table info available.
#8 0xb638c4ea in clone () from /lib/libc.so.6
No symbol table info available.
(gdb) c
Continuing.
Breakpoint 16, 0xb6b5d176 in QGVector::insert () from /usr/qt/3/lib/libqt-mt.so.3
(gdb) bt full
#0 0xb6b5d176 in QGVector::insert () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#1 0xb7c36b0d in QPtrVector<unsigned char>::insert (this=0xae9b4a70, i=0, d=0xae9b52e3 "Ný\002deu") at qptrvector.h:67
No locals.
#2 0xb7c254d2 in SIParser::ParseDVBEIT (this=0x8167a20, head=0xae9b4bc0, buffer=0xae9b4e88 "\003\005!\024\030a\"\205Ñ®\t\005",
size=2613) at siparser.cpp:1478
lang = {static null = {static null = <same as static member of an already seen type>, d = 0x80ea458,
static shared_null = 0x80ea458}, d = 0xade08f38, static shared_null = 0x80ea458}
prio = 5
desc_number = 0
last_desc_number = 2
bd4D_prio = 5
bd4D_data = (uint8_t *) 0xae9b52ba "M'deu\016\005Spielegalaxie\024\005Kindersendung, D \212"
bd4D_lang = {static null = {static null = <same as static member of an already seen type>, d = 0x80ea458,
static shared_null = 0x80ea458}, d = 0xade271f8, static shared_null = 0x80ea458}
exEvInfos = {<> = {<No data fields>}, <No data fields>}
bd4E_prio = -1
bd4E_lang = {static null = {static null = <same as static member of an already seen type>, d = 0x80ea458,
static shared_null = 0x80ea458}, d = 0x80ea458, static shared_null = 0x80ea458}
last_table_id = 97 'a'
des_pos = 1115
e = {SourcePID = 0, TransportID = 773, NetworkID = 8468, ServiceID = 16411, EventID = 8877, Stereo = false, HDTV = false,
SubTitled = false, ETM_Location = 0, ATSC = false, PartNumber = 0, PartTotal = 0, StartTime = {d = {jd = 2453679}, t = {
ds = 38700000}}, EndTime = {d = {jd = 2453679}, t = {ds = 40800000}}, OriginalAirDate = {jd = 0}, LanguageCode = {
static null = {static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458},
d = 0xadccb450, static shared_null = 0x80ea458}, Event_Name = {static null = {
static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xae0c8210,
static shared_null = 0x80ea458}, Event_Subtitle = {static null = {static null = <same as static member of an already seen type>,
d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xadc470f0, static shared_null = 0x80ea458}, Description = {static null = {
static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xade06818,
static shared_null = 0x80ea458}, ContentDescription = {static null = {
static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xadcc8758,
static shared_null = 0x80ea458}, Year = {static null = {static null = <same as static member of an already seen type>,
d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xadc492c8, static shared_null = 0x80ea458}, CategoryType = {static null = {
static null = <same as static member of an already seen type>, d = 0x80ea458, static shared_null = 0x80ea458}, d = 0xadcc80e8,
static shared_null = 0x80ea458}, Actors = {<QValueList<QString>> = {sh = 0xadc4acc0}, <No data fields>}, Credits = {
sh = 0xade481e8}}
last_segment_number = 24 '\030'
pos = 1074
descriptor_length = 584
#3 0xb7c1efa4 in SIParser::ParseTable (this=0x8167a20, buffer=0xae9b4e80 "`ú:@\033ß\030ø\003\005!\024\030a\"\205Ñ®\t\005",
size=2621, pid=18) at siparser.cpp:562
head = {table_id = 96 '`', section_length = 2618, table_id_ext = 16411, current_next = true, version = 15 '\017',
section_number = 24 '\030', section_last = 248 'ø'}
#4 0xb7c3d4ff in DVBSIParser::StartSectionReader (this=0x8167a20) at dvbsiparser.cpp:299
rsz = 2621
i = 5
ret = 5
buffer = "`ú:@\033ß\030ø\003\005!\024\030a\"\205Ñ®\t\005\000\000\020\000\002jMHdeu#\005Käpt'n Nobart und die Piratenbande \005Zeichentrickserie, L/F/D 1997\000\000Ný\002deu\000÷\005Ein Geisterschiff taucht auf. Prima, denken die Piraten. Denn auf solchen Schiffen befindet"...
processed = true
#5 0xb7c3acf5 in DVBSIParser::SystemInfoThread (param=0x8167a20) at dvbsiparser.cpp:100
siparser = (DVBSIParser *) 0x8167a20
#6 0xb64edcd2 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#7 0xb64ede42 in pthread_start_thread_event () from /lib/libpthread.so.0
No symbol table info available.
#8 0xb638c4ea in clone () from /lib/libc.so.6
No symbol table info available.
(gdb) c
Continuing.
[Switching to Thread 163851 (LWP 16843)]
Attachments (1)
Change History (6)
comment:1 by , 20 years ago
| Milestone: | → unknown |
|---|---|
| Version: | → head |
comment:2 by , 20 years ago
comment:3 by , 20 years ago
yes. I was I little bit tired yesterday.
If we assume that it is legal for last_desc_number to become zero the attached patch seems to be correct. It fixes the problem for me.
by , 20 years ago
| Attachment: | mythtv_QGVector_fix.diff added |
|---|
comment:4 by , 20 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |

The error message "QGVector::insert: Index 0 out of range" in this case comes from the line 1478, because of the previous line (1477):
exEvInfos.resize (last_desc_number);
where the last_desc_number-variable occasionally gets the value of '0' and thefore the following insert() fails. The same used to happen quite often in my previous cable-network. A simple fix is to make sure that we never resize the vector to zero size.