Opened 9 years ago

Closed 8 years ago

#9427 closed Bug Report - Crash (fixed)

[CRASH] segfault in mythtranscode if run with --infile

Reported by: timowi <mythtv@…> Owned by: beirdo
Priority: minor Milestone: 0.25
Component: MythTV - Mythtranscode Version: 0.24-fixes
Severity: medium Keywords:
Cc: Ticket locked: no

Description

mythtranscode segfault if I start it with --infile and mythtv has no recording for that file in the database.

backtrace:

#0  0x000000000041e6ce in QString (this=0x7f943807d008, other=@0x8) at /usr/qt-4.7/include/QtCore/qstring.h:728
#1  0x00007f944652cefa in ProgramInfo (this=0x7f943807d000, other=@0x0) at programinfo.cpp:226
#2  0x00007f9449203fad in DecoderBase (this=0x7f94380237d0, parent=0x7f9438031710, pginfo=@0x0) at decoderbase.cpp:49
#3  0x00007f944923e3f9 in AvFormatDecoder (this=0x7f94380237d0, parent=0x7f9438031710, pginfo=@0x0, use_null_videoout=true, allow_private_decode=true, no_hardware_decode=false, 
    special_decoding=kAVSpecialDecode_None) at avformatdecoder.cpp:292
#4  0x00007f9449197e3c in MythPlayer::CreateDecoder (this=0x7f9438031710, testbuf=0x7fff047b3e40 "G@", testreadsize=2048, allow_libmpeg2=true, no_accel=false) at mythplayer.cpp:927
#5  0x00007f944919a1fa in MythPlayer::OpenFile (this=0x7f9438031710, retries=0, allow_libmpeg2=true) at mythplayer.cpp:980
#6  0x00000000004224c2 in Transcode::TranscodeFile (this=0x7f943801ede0, inputname=@0x7fff047d68e0, outputname=@0x7fff047d68d0, profileName=@0x7fff047d68c0, honorCutList=false, 
    framecontrol=false, jobID=-1, fifodir=
      {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 186}, alloc = 0, size = 0, data = 0x7f94420feefa, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 38}, alloc = 0, size = 0, data = 0x7f94420fef1a, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x7fff047d6e20, static codecForCStrings = 0x0}, deleteMap=@0x7fff047d6880) at transcode.cpp:406
#7  0x000000000041c059 in main (argc=7, argv=0x7fff047d71e8) at main.cpp:642

Change History (4)

comment:1 Changed 9 years ago by beirdo

Summary: segfault in mythtranscode if run with --infile[CRASH] segfault in mythtranscode if run with --infile

comment:2 Changed 9 years ago by beirdo

Owner: set to beirdo
Status: newassigned

comment:3 Changed 8 years ago by beirdo

Type: Bug ReportBug Report - Crash

comment:4 Changed 8 years ago by Github

Milestone: unknown0.25
Resolution: fixed
Status: assignedclosed

Make mythtranscode fail gracefully on file not found

Fixes #9427

If a recording doesn't exist, or the recording exists, but is not in the database, mythtranscode will gracefully refuse to transcode it, rather than crash.

Also, make the MythContext object be on the stack of main(), such that any exit from the system will hit the dtor, causing a cleaner shutdown.

Branch: master Changeset: ca4001dabf3f4c140ae83effc2c7927ab7fd1352

Note: See TracTickets for help on using tickets.