Opened 13 years ago

Closed 12 years ago

#9231 closed defect (fixed)

[CRASH] frontend crash entering netvision channel

Reported by: anonymous Owned by: cpinkham
Priority: minor Milestone: 0.25
Component: MythTV - General Version: 0.24
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Often have the frontend crash when entering a netvision channel. This seems to be caused by something in the paththumb download. If I update the database to set all the paththumbs of the channel to be the same local file image no crash. Also after a few crash if all the paththumb images are download and are in the cache then also no crash. Looks like mostly occurs for channels where there are many directories (~10 or more) Downloading of video thumbnails do not cause a crash.

Downloading of the paththumbs looks quite strange. Starts with no images, then images blink on and off as they download, then when all are downloaded, all the images pop up.

See lots of the following errors in frontend log

QString::arg: Argument missing: "images/image_gallery_no_image.png" , 1
QString::arg: Argument missing: "/home/auric/.mythtv/thumbcache/thumbnail_37530_15694.gif" , 1

Have also seen a couple of freezes, but it is usually a crash. I think the freezes give the following error. (Could be from a crash, can do more testing if needed)

*** glibc detected *** mythfrontend: double free or corruption (fasttop): 0x0abfee08 ***

Attachments (2)

gdb.txt.gz (5.5 KB) - added by anonymous 13 years ago.
mythdownloadmanager.patch (1019 bytes) - added by Jonatan <mythtv@…> 13 years ago.

Download all attachments as: .zip

Change History (12)

comment:1 Changed 13 years ago by robertm

Status: newinfoneeded_new

Need a backtrace, please.

Changed 13 years ago by anonymous

Attachment: gdb.txt.gz added

comment:2 Changed 13 years ago by anonymous

This gdb.txt is from a hang not a crash. Hope this helps. Will try a few more times to get a crash. Note sure how to get what changeset this build is. Was checked out from trunk 15/11 9PM GST

comment:3 Changed 13 years ago by anonymous

Doh. Version is

MythTV Version   : 27235
MythTV Branch    : trunk
Network Protocol : 63
Library API      : 0.25.20101112-1
QT Version       : 4.6.3

comment:4 Changed 13 years ago by robertm

Component: Plugin - MythNetvisionMythTV - General
Owner: changed from robertm to cpinkham

Chris, can you look at this and decide whether it's anything we need to deal with? The crash is actually in Qt code, I cannot reproduce, but it's called from within MythDownloadManager?. Gut says it's a Qt bug, but worth one more look.

comment:5 Changed 13 years ago by robertm

Status: infoneeded_newnew

Auric, your backtrace is a crash, not a hang. No further info needed.

comment:6 Changed 13 years ago by robertm

Status: newassigned

comment:7 Changed 13 years ago by anonymous

Thanks Robert.

For general info, qt version.

Name        : qt      Relocations: (not relocatable)
Version     : 4.6.3   Vendor: Fedora Project
Release     : 8.fc12  Build Date: Fri 02 Jul 2010 01:18:54 AM EST

Auric

comment:8 Changed 13 years ago by beirdo

Summary: frontend crash entering netvision channel[CRASH] frontend crash entering netvision channel

Changed 13 years ago by Jonatan <mythtv@…>

Attachment: mythdownloadmanager.patch added

comment:9 Changed 13 years ago by Jonatan <mythtv@…>

Seems like there are some thread safety issues in MythDownloadManager?. The attached patched tries to solve them.

comment:10 Changed 12 years ago by Github

Milestone: unknown0.25
Resolution: fixed
Status: assignedclosed

Fix race condition and potential segfault in MythDownloadManager?.

Put a lock around the creation of the MythDownloadManager? to make sure we don't get two created by a potential race condition.

Put a lock around access to the QNetworkDiskCache when called via MythDownloadManager::GetLastModified?().

Fixes #9231 using ideas from Jonatan from comhem.se, but most of the patch (and potential issues) are mine.

Branch: master Changeset: e7b14849adf4f97cda5798eb668bf457776fa7b5

Note: See TracTickets for help on using tickets.