Opened 13 years ago
Closed 12 years ago
#9388 closed Bug Report - Crash (fixed)
[CRASH] Crash when loading image in background thread
Reported by: | Owned by: | cpinkham | |
---|---|---|---|
Priority: | blocker | Milestone: | 0.25 |
Component: | MythTV - User Interface Library | Version: | 0.24-fixes |
Severity: | high | Keywords: | |
Cc: | Ticket locked: | no |
Description
When navigating through the channel list for setting channel priorities, the frontend crashes. GDB output attached.
Attachments (4)
Change History (16)
comment:1 Changed 13 years ago by
Status: | new → infoneeded_new |
---|
comment:2 Changed 13 years ago by
Version is b769303, attached are fresh gdb, frontend and backend logs.
Changed 13 years ago by
Attachment: | mythbackend.log added |
---|
Changed 13 years ago by
Attachment: | mythfrontend.log added |
---|
comment:3 Changed 13 years ago by
Milestone: | unknown → 0.24.1 |
---|---|
Owner: | set to stuartm |
Priority: | minor → critical |
Status: | infoneeded_new → assigned |
comment:4 Changed 13 years ago by
The backtrace shows a sigabort, not a segfault so it's not clear cut.
I'm reasonably confident that the correlation with the Channel Priorities screen is pure coincidence. What we appear to have here is UI code being used outside the UI thread, from the use of LoadAnimatedImages?() I'm guessing it's mythweather. Whatever it is, it has no business calling that code in a background thread, the redraw code is not thread safe as it's not designed to be accessed in multiple threads.
comment:5 Changed 13 years ago by
Component: | MythTV - General → Plugin - MythWeather |
---|
comment:6 Changed 13 years ago by
Component: | Plugin - MythWeather → MythTV - User Interface Library |
---|---|
Owner: | changed from stuartm to cpinkham |
Oops, this has nothing to do with MythWeather?. Re-assigning to Chris Pinkham since this seems to be an issue with locking in the threaded image loading.
comment:7 Changed 13 years ago by
Summary: | Crash in channel priorities → [CRASH] Crash in channel priorities |
---|
comment:8 Changed 13 years ago by
Milestone: | 0.24.1 → 0.25 |
---|---|
Priority: | critical → blocker |
Summary: | [CRASH] Crash in channel priorities → [CRASH] Crash when loading image in background thread |
comment:10 Changed 13 years ago by
Type: | Bug Report → Bug Report - Crash |
---|
comment:12 Changed 12 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Fix a crash caused by background animated image loading.
The background animated image loader was calling SetImages?() which triggers non thread-safe routines in MythUI. Instead of calling SetImages?() in the background thread, return the image QVector in the ImageLoadEvent? and set the images and delays in the UI thread similar to how we set non-animated images.
Fixes #9388.
NOTE: This changes the binary API, so make clean, etc., whatever you normally do.
Branch: master Changeset: 02f8352b91d8f43f39e37e4704edc481ffc1abdd
We need: version number (mythfrontend --version), and frontend and backend logs for the crash.