id summary reporter owner description type status priority milestone component version severity resolution keywords cc mlocked 1459 Mythbackend SEGV during EIT scan - svn 9246 mythdev@… danielk "I can't see this logged elsewhere - #1441 (housekeeping SEGV) and #1453 (recording SEGV) may be relevant but this segv occurs during EIT scan with SVN 9246 - it was not present in 8927. The failure only seems to occur when the EIT scan hits a channel that is either a weak signal or is temporarily 'off air'. (The EIT scan looks at channels that have been marked as not visible so apart from turning off eit scanning there isn't a workaround.) I've attached a gdb.txt and the tail end of the mythbackend logs within gdb.txt I've included the gdb p results for *this & *psip - the psip values show that the _pesdata/_fullbuffer are corrupt. (annotated with [jd] ) The SEGV is triggered by the psip->TableID() - which is invoking the StreamID() in pespacket.h {{{ void ATSCStreamData::DeleteCachedTable(PSIPTable *psip) const { if (!psip) return; QMutexLocker locker(&_cache_lock); if (_cached_ref_cnt[psip] > 0) { _cached_slated_for_deletion[psip] = 1; return; } else if (TableID::MGT == psip->TableID()) [jd] Segfault here }}} This segfaults because _pesdata is out of bounds: {{{ [jd] p *psip $1 = { = {_vptr.PESPacket = 0x409f6410, _pesdata = 0x4400a00d
, _fullbuffer = 0x4400a008
, _psiOffset = 4, _ccLast = 2, _pesdataSize = 188, _allocSize = 3948, _badPacket = false}, static PSIP_OFFSET = 8} }}} I'm just rebuilding with the patch from #1456 - however I won't know if its had any effect for several hours because I have to wait for the scan to hit an off-air channel. I've logged this as medium severity because the backend is failing without user activity and hence will be undetected = missed recordings. Apologies - there isn't a patch here - I don't understand whats happening yet :) " defect closed minor 0.20 mythtv head medium fixed 0