Image provider blocking the UI thread

Bug #1410260 reported by Michał Sawicz
20
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Thumbnailer
Fix Released
High
Albert Astals Cid
thumbnailer (Ubuntu)
Fix Released
High
Albert Astals Cid

Bug Description

Steps:
* add some music to your device (phone or desktop is fine)
* [on desktop] install unity8 and run "unity8-dash -mousetouch"
* bottom-swipe to the Manage screen
* select the "My Music" scope
* scroll quickly

Expected:
* scope scrolls smoothly, even if there's no images

Current:
* scope scrolling blocked for seconds at a time

This seems to be most visible the first time, when images are not cached on disk yet.

AFAIK the impact of this is elevated by the fact that Qt serializes requests to image providers, so when it's blocked to download one image, it will not continue to the next image etc.

ProblemType: Bug
DistroRelease: Ubuntu 15.04
Package: qtdeclarative5-ubuntu-thumbnailer0.1 1.3+15.04.20150106-0ubuntu1
Uname: Linux 3.18.0-031800rc4-generic x86_64
ApportVersion: 2.15.1-0ubuntu2
Architecture: amd64
CurrentDesktop: Unity
Date: Tue Jan 13 14:26:35 2015
SourcePackage: thumbnailer
SystemImageInfo:
 current build number: 0
 device name:
 channel: daily
 last update: Unknown
UpgradeStatus: No upgrade log present (probably fresh install)

Related branches

Revision history for this message
Michał Sawicz (saviq) wrote :
Revision history for this message
Jussi Pakkanen (jpakkane) wrote :

Qt's documentation says this:

To force asynchronous image loading, even for image sources that do not have the asynchronous property set to true, you may pass the QQuickImageProvider::ForceAsynchronousImageLoading flag to the image provider constructor. This ensures that all image requests for the provider are handled in a separate thread.

This is exactly what thumbnailer does (thumbnailgenerator.cpp:29). This should make it fully asynchronous. All threading related to this is done by Qt internals and they are not exposed to QQuickImageProviders. This would indicate that the blocking happens somewhere inside Qt and thus is not caused by thumbnailer.

Michał Sawicz (saviq)
Changed in thumbnailer (Ubuntu):
status: New → In Progress
importance: Undecided → Critical
importance: Critical → High
assignee: nobody → Albert Astals Cid (aacid)
Changed in thumbnailer:
status: New → In Progress
importance: Undecided → High
assignee: nobody → Albert Astals Cid (aacid)
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package thumbnailer - 1.3+15.04.20150312-0ubuntu1

---------------
thumbnailer (1.3+15.04.20150312-0ubuntu1) vivid; urgency=medium

  [ Albert Astals Cid ]
  * Use own QDBusConnection (LP: #1410260)
 -- CI Train Bot <email address hidden> Thu, 12 Mar 2015 08:38:44 +0000

Changed in thumbnailer (Ubuntu):
status: In Progress → Fix Released
Changed in thumbnailer:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.