gnome-settings-daemon dconf to gconf plugin causes settings to be lost
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
gnome-settings-daemon (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Quantal |
Won't Fix
|
High
|
Unassigned |
Bug Description
Impact:
Using dconf profiles can lead to gconf keys to be overwritten with wrong values, it's especially impact some desktop settings and compiz
Test Case:
$ gconftool --set /desktop/
$ gconftool --get /desktop/
false
Then editing some file under /etc/dconf and running dconf update:
$ sudo vi /etc/dconf/
$ sudo dconf update
$ gconftool --get /desktop/
true
Regression potential:
Some of the gsettings could not be written back to gconf which could impact legacy applications which are still reading the gconf value
------
This was tested in a fresh installed precise machine, with the addition of dconf and a particular dconf configuration.
Settings set in gconf backend get overwritten when running 'dconf update'. This can be tested by changing any value in gconf to something different than the default:
$ gconftool --set /desktop/
$ gconftool --get /desktop/
false
$ gconftool --set /apps/metacity/
$ gconftool --get /apps/metacity/
sloppy
Then editing some file under /etc/dconf and running dconf update:
$ sudo vi /etc/dconf/
$ sudo dconf update
$ gconftool --get /desktop/
true
$ gconftool --get /apps/metacity/
click
After talking about this with Ryan Lortie, he suggested disabling the gnome-settings-
$ gsettings set org.gnome.
$ gconftool --set /desktop/
$ gconftool --set /apps/metacity/
$ sudo vi /etc/dconf/
$ sudo dconf update
$ gconftool --get /desktop/
false
$ gconftool --get /apps/metacity/
sloppy
It looks like the gconf plugin is overwriting all the settings with the defaults, thus losing anything the user had customized. It's quite likely that a number of other bugs "Compiz loses my settings" are actually caused by this plugin.
Also, as instructed by Ryan, I tried removing /usr/share/
$ gsettings reset org.gnome.
$ gsettings get org.gnome.
true
$ gconftool --set /desktop/
$ gconftool --set /apps/metacity/
$ sudo vi /etc/dconf/
$ sudo dconf update
$ gconftool --get /desktop/
true
$ gconftool --get /apps/metacity/
sloppy
So, focus_mode didn't get overwritten while event_sounds did.
One possible solution is to remove the wm-schemas so that compiz settings don't get lost. A better (but probably harder) solution would be to fix the plugin so that it doesn't overwrite what the user sets. Maybe just remove the schemas that are being modified and stored in gconf for Precise.
I found out that to reproduce in a fresh installed precise machine, I had to set up some dconf files, then reboot, and then I could reproduce consistently as explained here. I'm attaching a bunch of dconf files. After unpacking, you need to run dconf update once to generate the db and then reboot. After that it should be reproducible.
Related branches
Changed in gnome-settings-daemon (Ubuntu): | |
importance: | Undecided → High |
Changed in gnome-settings-daemon (Ubuntu Quantal): | |
importance: | Undecided → High |
status: | New → In Progress |
description: | updated |
tags: | added: precise quantal |
Sample configuration that allows to reproduce the bug.