Animating Icon eats up CPU and slows dows unity-panel-service
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
sni-qt |
Fix Released
|
Medium
|
Aurélien Gâteau | ||
sni-qt (Ubuntu) |
Fix Released
|
High
|
Aurélien Gâteau | ||
Oneiric |
Fix Released
|
High
|
Unassigned |
Bug Description
[Impact]
Users running a Qt application with a systemtray icon which updates its icon frequently to produce an animation will get unity-panel-service to use all CPU.
This is because sni-qt continuously generate new images for the icon which unity-panel-service has to decode.
Skype is an example of application which triggers this bug.
[Development Fix]
Bug has been fixed upstream in sni-qt 0.2.6 by computing md4sums of the icon pixels, making it possible to reuse existing images instead of always generating new ones.
[Stable Fix]
debdiff attached to this report backports revision 88.1.4 of upstream, implementing the md4sum.
[Test Case]
1) Open Skype
2) Disconnect from internet. Skype icon starts to animate
3) Notice Skype unity-panel-service starts eating up the CPU and often making indicator menus unresponsive or lag like Ubuntu is running on a 200mhz cpu
[Regression Potential]
No regression expected. The fix has been tested from a PPA for a while now.
Related branches
Changed in sni-qt: | |
status: | In Progress → Fix Released |
Changed in sni-qt (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Medium |
assignee: | nobody → Aurélien Gâteau (agateau) |
Changed in sni-qt (Ubuntu Oneiric): | |
importance: | Undecided → High |
Changed in sni-qt (Ubuntu): | |
importance: | Medium → High |
status: | Triaged → Fix Committed |
Changed in sni-qt (Ubuntu Oneiric): | |
status: | Confirmed → Fix Committed |
tags: |
added: verification-done removed: verification-needed |
Thanks for your report.
I have an idea to fix this bug but it is non-trivial so I am not going to rush it for the Oneiric release. We will fix it with a SRU. I am probably going to provide the fix in the sni-qt PPA before though.