Opened 6 years ago

Closed 6 years ago

Last modified 5 years ago

#12079 closed Bug Report - Crash (fixed)

Attempt to play any rec. from LiveTV group segfaults FE

Reported by: warpme@… Owned by: Jean-Yves Avenard <jyavenard@…>
Priority: minor Milestone: 0.28
Component: MythTV - General Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Attempt to play any recording from LiveTV group segfaults FE. Issue is the same on current master and on 0.27-fixes. FE log attached.

Attachments (2)

fe-log (98.1 KB) - added by warpme@… 6 years ago.
trace (103.6 KB) - added by warpme@… 6 years ago.
gdb trace

Download all attachments as: .zip

Change History (8)

Changed 6 years ago by warpme@…

Attachment: fe-log added

Changed 6 years ago by warpme@…

Attachment: trace added

gdb trace

comment:1 Changed 6 years ago by warpme@…

It looks like issue is caused by https://github.com/MythTV/mythtv/commit/1cfdfa3f56876eb20170f33e9592b5c7ffd05064 Reverting this commit solves issue form me on master & o/27-fixes.

comment:2 Changed 6 years ago by warpme@…

Damn, https://github.com/MythTV/mythtv/commit/1cfdfa3f56876eb20170f33e9592b5c7ffd05064 is false positive :-(. Issue is present without this commit. Interesting is that moving rec. from LiveTV group to any other group causes it plays OK.

comment:3 Changed 6 years ago by JYA

There is no way 0.27 or devel/027candidates could have the crash you describe; the code just didn't exist there.

What you need is either revert https://github.com/MythTV/mythtv/commit/7fd5ad119c73

or replace line 1022

        int cardid = player_ctx->recorder->GetRecorderNumber();
        QString channum = player_ctx->playingInfo->GetChanNum();
        QString inputname;
        int cardinputid = CardUtil::GetCardInputID(cardid, channum, inputname);
        CardUtil::SetStartChannel(cardinputid, channum);

with:

        if (IsWatchingInprogress())
        {
            int cardid = player_ctx->recorder->GetRecorderNumber();
            QString channum = player_ctx->playingInfo->GetChanNum();
            QString inputname;
            int cardinputid = CardUtil::GetCardInputID(cardid, channum, inputname);
            CardUtil::SetStartChannel(cardinputid, channum);
        }

personally, I feel that a complete revert is better as it doesn't make sense to save the cardid at this stage

comment:4 Changed 6 years ago by Jean-Yves Avenard <jyavenard@…>

Owner: set to Jean-Yves Avenard <jyavenard@…>
Resolution: fixed
Status: newclosed

In 103d573f292809a333c998f8397c951f84eedbfd/mythtv:

Fixes null dereference

When watching a recording from liveTV group, player_ctx->recorder is null. There’s also no card id to record.

Fixes #12079

comment:5 Changed 6 years ago by warpme@…

Works perfectly!. Million thx.

comment:6 Changed 5 years ago by paulh

Milestone: unknown0.28
Note: See TracTickets for help on using tickets.