Viewer crashes if any trophy collection packages have been removed
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu Accomplishments Daemon |
In Progress
|
Low
|
Unassigned | ||
Ubuntu Accomplishments System |
In Progress
|
Low
|
Unassigned |
Bug Description
If a user removes a trophy collection package (for example ubuntu-
Traceback (most recent call last):
File "/usr/bin/
accomplishm
File "/usr/lib/
line 51, in main
window = Accomplishments
File "/usr/lib/
line 48, in __new__
new_
File "/usr/lib/
line 237, in finish_initializing
self.
File "/usr/lib/
line 500, in finalise_
self.
File "/usr/lib/
line 828, in update_views
icon = GdkPixbuf.
File "/usr/lib/
return info.invoke(cls, *args, **kwargs)
gi._glib.GError: Failed to open file
Some fault tolerance should be added for example to restart the daemon process to update configuration instead of letting the viewer crash. A daemon restart fixes the problem but end users cannot be responsible of knowing to do this.
Changed in ubuntu-accomplishments-daemon: | |
milestone: | 0.3 → 0.4 |
Changed in ubuntu-accomplishments-system: | |
assignee: | nobody → Matt Fischer (mfisch) |
Changed in ubuntu-accomplishments-daemon: | |
assignee: | nobody → Matt Fischer (mfisch) |
Changed in ubuntu-accomplishments-system: | |
importance: | Undecided → Low |
status: | Confirmed → In Progress |
Changed in ubuntu-accomplishments-daemon: | |
status: | Confirmed → In Progress |
Changed in ubuntu-accomplishments-daemon: | |
assignee: | Matt Fischer (mfisch) → nobody |
Changed in ubuntu-accomplishments-system: | |
assignee: | Matt Fischer (mfisch) → nobody |
Here is in more detail what happens:
1. The daemon is started. It loads UDA and UCA collections.
2. User removes UDA package, so removes it's files. The daemon still has it's data kept in accomDB.
3. User starts the viewer. The viewer asks the daemon to provide it with trophy icon cache files, so the daemon clears this cache, and recreates it for bot UCA and UDA, as it still thinks both collections are installed.
4. The daemon fails to find UDA icon files, so they do not get cached.
5. The viewer tries to load the icon files cache, but it fails to find some of these icons in cache.
I think an ideal solution to this would be to get accomplishment collection packages to run accomplishments -daemon --reload when installed or removed, so that the daemon's cache would be refreshed.