Opened 9 years ago

Closed 9 years ago

#9007 closed defect (Fixed)

mythfrontend crashes when Finnish EPG changes

Reported by: Marc Randolph <mrand@…> Owned by:
Priority: minor Milestone: 0.24
Component: MythTV - General Version: 0.23.1
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Forwarding upstream:

On YLE (Finnish national broadcasting company) channels but on them without an exception. Every time the EPG data changes to mark the beginning of the next program, MythTV frontend crashes without even an error message, both when watching live TV or a recorded program.

One theory on the cause: The originator might not be EPG in itself. At the beginning of each new program, YLE assigns language codes for all the audio and video channels. (Many programs have both Finnish and Swedish audio and subtitles, and additionally YLE uses “Dutch” for the hearing-impaired subtitles and for the visually-impaired audio channel.)

If needed, thread traces are available on the downstream bug (https://bugs.launchpad.net/ubuntu/+source/mythtv/+bug/629852). Note that there are two of them, and one may be distinctly more useful than the other.

stack trace:

#0  0x00007f992d85fd67 in AvFormatDecoder::GetFrame (this=0x42b29d0, 
    decodetype=kDecodeVideo) at avformatdecoder.cpp:4399
        context = 0x7f991aa5c320
        mpa_pic = {data = {
            0x7f99002430e0 "\021\021\021\021\021\021\021\021\024\022\022\022\020\020\021\020\020\022\024\023\020\017\020\023\021\021\020\020\017\017\017\016\021\021\021\021\021\021\021\021\016\016\016\017\020\020\021\021\020\020\020\020\020\020\020\020\023\022\022\021\021", '\020' <repeats 11 times>, "\021\021\022\021\022\021\022\021\020\020\020\020\020\021\021\021\r\017\021\021\017\016\017\020\023\023\023\023\023\023\023\023\020\020\017\017\017\016\016\016\022\022\017\016\020\024\022\016\017\020\021\021\020\020\021\023\020\020\021\021\021\021\020\020\016\021\021\017\017\021\022\021\017\017\022\025\023\021\021\021\021\020\020\017\017\020\020\021\024\022\021\022\023\023\021\016\021\017\016\016\020\021\020\017\021\020\017\016\020\021\020\r\016\016\017\017\020\020\020\017\021\021\021\021\021\020\020\020"..., 
            0x7f9900029558 "\202\202\201\200\200\177~~~~~~~~~~", '\177' <repeats 16 times>"\200, \200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\177\177\177\177\177\177\177\177\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\201\201\201\201\201\201\201\201\201\201\201\201\201\201\201\201\201\201\201\201\201\201\201\201\202\202\202\201\201\200\200\200\177\177\177\200\200\200\201\201\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\201\201\201\201\201\201\201\201\202\202\202\202\202\202\202\202\203\203\203\203\203\203\203\203\201\201\201\201\201\201\201\201\202\202\202\202\202\202\202\202\177\200\200\201\201\202\202\202"..., 
            0x7f99002b07b8 "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\177\177\177\177\177\177\177\177\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\177\177\177\177\177\177\177\177\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\177\177\177\177\177\177\177\177\200\200\200\200\200\200\200\200\177\177\177\177\177\177\177\177\200\200\200\200\200\200\200\200\177\177\177\177\177\177\177\177\200\200\200\200\200\200\200\200\201\201\201\201\201\201\201\201\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\201\201\201\201\201\201\201\201\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200"..., 0x0}, linesize = {752, 376, 376, 
            0}, base = {
            0x7f99002401d0 "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200"..., 
            0x7f9900028990 "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200"..., 
            0x7f99002afbf0 "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200"..., 0x0}, key_frame = 1, 
          pict_type = 1, pts = -9223372036854775808, 
          coded_picture_number = 0, display_picture_number = 0, quality = 0, 
          age = 1073741824, reference = 3, 
          qscale_table = 0x7f991bbd6430 '\006' <repeats 45 times>, 
          qstride = 46, mbskip_table = 0x7f991bbd5da0 "", motion_val = {0x0, 
            0x0}, mb_type = 0x7f99000449a4, motion_subsample_log2 = 0 '\000', 
          opaque = 0x0, error = {0, 0, 0, 0}, type = 1, repeat_pict = 0, 
          qscale_type = 1, interlaced_frame = 1, top_field_first = 1, 
          pan_scan = 0x7f991bdc3220, palette_has_changed = 0, 
          buffer_hints = 0, dct_coeff = 0x0, ref_index = {0x0, 0x0}, 
          reordered_opaque = -9223372036854775808, 
          hwaccel_picture_private = 0x0, 
          atsc_cc_buf = '\000' <repeats 1023 times>, atsc_cc_len = 0, 
          dvb_cc_buf = '\000' <repeats 127 times>, dvb_cc_len = 0}
        gotpicture = 48
        temppts = 28572833
        picframe = 0x0
        ret = 29544
        dts = false
        ctype = 0
        audSubIdx = -1
        curstream = 0x7f991816e7e0
        audIdx = 1
        subIdx = 2
        pkt = 0x7f991baa3270
        len = 29544
        storevideoframes = false
        hdr = {sync_word = 1280, crc1 = 7077, sr_code = 153 '\231', 
          bitstream_id = 127 '\177', channel_mode = 0 '\000', 
          lfe_on = 0 '\000', frame_type = 192 '\300', substreamid = 32665, 
          center_mix_level = 191256256, surround_mix_level = 32665, 
          channel_map = 3219, num_blocks = 32665, sr_shift = 0 '\000', 
          sample_rate = 0, bit_rate = 0, channels = 48 '0', 
          frame_size = 2918, channel_layout = 76809136}
        ptr = 0x7f99000bf680 ""
        data_size = 4608
        has_video = true
        ofill = 1
        ototal = 1536000
        total_decoded_audio = 0
        pts = 28572833
        have_err = false
        allowedquit = false
        skipaudio = true
        othresh = 1152000
        firstloop = true
#1  0x00007f992d7d5f5c in NuppelVideoPlayer::GetFrameNormal (this=0x4265450, 
    decodetype=kDecodeAV) at NuppelVideoPlayer.cpp:1482
No locals.
#2  0x00007f992d7d6e16 in NuppelVideoPlayer::GetFrame (this=0x4265450, 
    decodetype=kDecodeAV, unsafe=false) at NuppelVideoPlayer.cpp:1568
        ret = false
#3  0x00007f992d7e5e10 in NuppelVideoPlayer::StartPlaying (this=0x4265450, 
    openfile=false) at NuppelVideoPlayer.cpp:3725
        dt = kDecodeAV
        __PRETTY_FUNCTION__ = "bool NuppelVideoPlayer::StartPlaying(bool)"
        output_video = 140295314773776
        decoder_thread = 140295297988368
#4  0x00007f992d817753 in SpawnDecode (param=0x4265450)
    at playercontext.cpp:29
        decoder_thread_pool = 0x0
        nvp = 0x4265450
#5  0x00007f992807c9ca in start_thread (arg=<value optimized out>)
    at pthread_create.c:300
        __res = <value optimized out>
        pd = 0x7f990b667710
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140295297988368, 
                486565484700141264, 0, 0, 0, 0, -436085595324512560, 
                -436021551966026032}, mask_was_saved = 0}}, priv = {pad = {
              0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, 
              canceltype = 0}}}
        not_first_call = <value optimized out>
        robust = <value optimized out>
        freesize = <value optimized out>
        __PRETTY_FUNCTION__ = "start_thread"

Attachments (1)

9007.bt.txt (58.8 KB) - added by robertm 9 years ago.
Full handicapped Ubuntu backtrace

Download all attachments as: .zip

Change History (5)

comment:1 Changed 9 years ago by robertm

Status: newinfoneeded_new

We are literally days away from .24, and this segfault is in a function that has been heavily refactored-- There is little point in trying to hunt this down, it really, really needs a test with trunk instead, and if the crash still exists, for an updated, proper backtrace to be created.

comment:2 Changed 9 years ago by robertm

Plus, the reporter's theory is a total nonsense and the tiny segment of the BT pasted here is basically irrelevant. When forwarding these tickets, it would be more helpful to have the full BT rather than an excerpt.

Changed 9 years ago by robertm

Attachment: 9007.bt.txt added

Full handicapped Ubuntu backtrace

comment:3 Changed 9 years ago by Marc Randolph <mrand@…>

Original reporter says this is not occurring in 0.24, so this ticket can be closed. Thanks!

comment:4 Changed 9 years ago by robertm

Milestone: unknown0.24
Resolution: Fixed
Status: infoneeded_newclosed
Note: See TracTickets for help on using tickets.