Opened 15 years ago
Closed 15 years ago
#7253 closed defect (fixed)
mythfrontend segfault with threaded loading of images
Reported by: | Owned by: | cpinkham | |
---|---|---|---|
Priority: | major | Milestone: | 0.22 |
Component: | MythTV - User Interface Library | Version: | head |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
while browsing my media in mythvideo, mythfront did a segfault here is the log and backtrace of mythfrontend
Attachments (3)
Change History (6)
Changed 15 years ago by
Attachment: | mythfrontend.log added |
---|
comment:1 Changed 15 years ago by
Component: | MythTV - General → MythTV - User Interface Library |
---|---|
Owner: | changed from Isaac Richards to cpinkham |
Status: | new → assigned |
Summary: | mythfrontend segfault while browsing mythvideo library → mythfrontend segfault with threaded loading of images |
Fix for this is under way, but leaving open as there isn't another ticket tracking it.
Changed 15 years ago by
Attachment: | mythfrontendcrash.txt added |
---|
mythfrontend log showing crash while browsing in mythvideo
comment:2 Changed 15 years ago by
I think I just saw the same crash. Log attached as: mythfrontendcrash.txt just because more is better.
comment:3 Changed 15 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
(In [22287]) A group of changes and bugfixes related to MythUIImage threading.
- Delete MythQtImage?'s QPixmap inside the UI thread in MythQtPainter?. This fixes #7253.
- Add a QMutex lock around all accesses to MythImage::m_RefCount so that we can access and update this value from multiple threads. This fixes segfaults reported in IRC.
- Add a QReadWriteLock lock in MythUIImage to protect values that are read and written from more than one thread, such as m_Filename.
- Create a dummy filename for gradients so that they can be treated uniquely, previously the filename was set empty, so in the event handler we were unable to tell what gradient was loaded. This is part of the fix for the incorrectly drawn buttons on popup menus.
- Reload the image/gradient when MythUIImage::ForceSize? is called instead of resizing the currently loaded image. There are places in the code where we create an image, then immediately force a new size on it, which was having no effect because there was no image loaded yet since we load images in the background now. This fixes an issue with incorrectly scaled coverart in MythVideo?.
- Add better locking around the in-memory image cache to prevent deadlocks which were encountered.
- Reset the in-memory image cache's timestamp for an image when MythUIImage loads an image out of the cache.
Note: See
TracTickets for help on using
tickets.
mythfrontend log