Opened 6 months ago

Last modified 3 months ago

#13627 infoneeded_new Bug Report - General

mytharchivehelper calls QList without error handling

Reported by: martinscharnke Owned by:
Priority: minor Milestone: needs_triage
Component: MythTV - General Version: v31-fixes
Severity: medium Keywords: mytharchivehelper QList coredump
Cc: Ticket locked: no

Description (last modified by Bill Meek)

Tested with DVB-T recordings, it seems mytharchivehelper doesn't trap range errors before calling Qlist, and Qlist spits a core dump.

example mythburn.log extract appended:


Pre-processing recording 1: '/mnt/Storage3/MythTVRecordings/1092_20200502114700.ts'
[mpegts @ 0x5649a7b0bdc0] write_section_data: PID 0x322 CRC error
[mp3float @ 0x5649a7b0c780] Header missing
[mpegts @ 0x5649a7b0bdc0] start time for stream 3 is not set in estimate_timings_from_pts
[mpegts @ 0x5649a7b0bdc0] PES packet size mismatch
[mpegts @ 0x5649a7b0bdc0] PES packet size mismatch
Input #0, mpegts, from '/mnt/Storage3/MythTVRecordings/1092_20200502114700.ts':
  Duration: 02:59:48.71, start: 14200.123022, bitrate: 2653 kb/s
    Stream #0:0[0x200]: Video: mpeg2video (Main), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x2c6](eng): Audio: mp2, 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:2[0x240](eng): Subtitle: dvb_teletext
Codec 0x17813 is not in the full list.
    Stream #0:3[0x322]: Data: unknown_codec
ASSERT failure in QList<T>::operator[]: "index out of range", file /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h, line 552
Aborted (core dumped)
************************************************************
ERROR: Failed while running mytharchivehelper to get stream information.
Result: 134, Command was mytharchivehelper -q -q --getfileinfo --infile "/mnt/Storage3/MythTVRecordings/1092_20200502114700.ts" --outfile "/home/martin/mytharctemp/work/1/streaminfo.xml" --method 0
See mythburn.log for more information.
************************************************************

Change History (7)

comment:1 Changed 6 months ago by jpilk

Failures like this, with a 'difficult' recording, could often be avoided by using the Project-X option in MythArchive?. While it would be nice to have it fixed properly, the workaround might be worth a try.

comment:2 Changed 6 months ago by martinscharnke

I actually *always* use Project-X for my cutlist processing, because I also want to preserve subtitles. mythburn.py doesn't get the chance to invoke Project-X, because mytharchivehelper fails.

comment:3 Changed 5 months ago by martinscharnke

Seeking to find a way to patch mytharchivehelper has led me to dependency hell. I can't compile mythplugins without a compiled mythtv. I can't compile mythtv without taglib 1.7 or greater. Taglib is indeed installed but generates errors when called by mythtv configure due to calls of log10 function ... can anybody share the secret sauce (or source!) that allows me to build mythtv so that I can start attacking the issue of patching mytharchivehelper?

comment:4 Changed 5 months ago by Bill Meek

Description: modified (diff)

Not so secret: https://github.com/MythTV/ansible. If taglib is installed, then is the dev package? E.g. libtag1-dev.

comment:5 Changed 3 months ago by martinscharnke

I am still unable to configure mythtv source ... libtag1-dev is indeed installed.

sudo apt install libtag1-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libtag1-dev is already the newest version (1.11.1+dfsg.1-0.3ubuntu2).
0 to upgrade, 0 to newly install, 0 to remove and 1 not to upgrade.

I can run the ansible recipe successfully to completion

PLAY RECAP ****************************************************************************************************************************************************************************************************************************************
localhost                  : ok=17   changed=0    unreachable=0    failed=0    skipped=118  rescued=0    ignored=0   

Yet configure still complains:

~/Downloads/mythtv/mythtv$ ./configure
ERROR: cannot find taglib 1.7 or later.

If you think configure made a mistake, make sure that you are using the latest
version of MythTV from git.  If the latest version fails, report the problem to the
mythtv-dev@mythtv.org mailing list or IRC #mythtv on irc.freenode.net
Include the log file "config.ep" produced by configure as this will help
solve the problem.
git pull mythtv
From mythtv
 * branch                  HEAD       -> FETCH_HEAD
Already up to date.

comment:6 Changed 3 months ago by Stuart Auchterlonie

Status: newinfoneeded_new

What distro is this please?

comment:7 Changed 3 months ago by martinscharnke

uname -a
Linux BARADDUR 5.4.0-31-generic #35-Ubuntu SMP Thu May 7 20:20:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Note: See TracTickets for help on using tickets.