Opened 8 years ago

Closed 8 years ago

#11450 closed Bug Report - Crash (Fixed)

mythfrontend segfaults if you leave "Watch Videos" while downloading metadata

Reported by: faginbagin <mythtv@…> Owned by: Raymond Wagner
Priority: critical Milestone: 0.27
Component: MythTV - Mythmetadatalookup Version: 0.26-fixes
Severity: medium Keywords:
Cc: Ticket locked: no


If you:

  • have a large enough library of videos, perhaps ones that don't exist at, like home videos and test videos,
  • and you don't have videometadata records for all or at least most of the library,
  • and you scan the library from within "Watch Videos",
  • and then leave "Watch Videos" after the file system scan completes but before all attempts to download metadata for the library have completed,

mythfrontend will dump core.

I believe it will dump core because VideoDialog? is the parent of MetadataFactory? and MetadataFactory? is the parent of MetadataDownload?, and when you leave "Watch Videos" while its trying to download metadata, VideoDialog?, MetadataFactory?, and MetadataDownload? are deleted, even though MetadataDownload::runGrabber() is waiting for to complete. When that command completes, it leads to a call to MetadataFactory::customEvent() in the main event thread, which tries to post a MetadataFactoryNoResult? event to its deleted parent VideoDialog?, which causes the core dump.

Steps to reproduce:

  • Truncate videometadata table using your favorite database management tool.
  • In mythfrontend, go to Media Library -> Watch Videos
  • Say OK when prompted to scan your video directories.
  • Press ESC as soon as progress box disappears.

Within a few seconds, mythfrontend should vanish.

mythfrontend --version Please attach all output as a file in bug reports. MythTV Version : v0.26.0-112-g77259c5 MythTV Branch : fixes/0.26 Network Protocol : 75 Library API : 0.26.20130225-1 QT Version : 4.8.3 Options compiled in:

linux profile use_hidesyms using_alsa using_oss using_pulse using_pulseoutput using_backend using_bindings_perl using_bindings_python using_bindings_php using_crystalhd using_dvb using_firewire using_frontend using_hdhomerun using_ceton using_hdpvr using_iptv using_ivtv using_joystick_menu using_libcec using_libcrypto using_libdns_sd using_libxml2 using_lirc using_mheg using_opengl_video using_qtwebkit using_qtscript using_qtdbus using_v4l2 using_x11 using_xrandr using_xv using_bindings_perl using_bindings_python using_bindings_php using_mythtranscode using_opengl using_vaapi using_vdpau using_ffmpeg_threads using_live using_mheg using_libass using_libxml2

Attachments (2)

gdb.mythfrontend.11679.txt (74.6 KB) - added by faginbagin <mythtv@…> 8 years ago.
mythfrontend.20130311065745.11679.log (242.1 KB) - added by faginbagin <mythtv@…> 8 years ago.

Download all attachments as: .zip

Change History (6)

Changed 8 years ago by faginbagin <mythtv@…>

Attachment: gdb.mythfrontend.11679.txt added

Changed 8 years ago by faginbagin <mythtv@…>

comment:1 Changed 8 years ago by faginbagin <mythtv@…>

If you're interested in a useful collection of videos to test this ticket, I suggest downloading and extracting the MP4 video clips described here:

They have helped me calibrate my HDTVs.

There may be other ways than truncating the videometadata table to reproduce this problem, but it's the way I was able to reproduce it consistently.

comment:2 Changed 8 years ago by Raymond Wagner

Owner: set to Raymond Wagner
Status: newaccepted

comment:3 Changed 8 years ago by stuartm

Milestone: unknown0.27
Priority: minorcritical

Raymond, Jean Yves was most recently looking at this issue, maybe you two could figure out a solution between you for 0.27? He may even have opened a ticket about it.

comment:4 Changed 8 years ago by JYA

Resolution: Fixed
Status: acceptedclosed

that issue was resolved with my work on mythmetadata earlier on

Note: See TracTickets for help on using tickets.