xrdb hintstyle is not correctly updated

Bug #356620 reported by Chris Cheney
0
Affects Status Importance Assigned to Milestone
GNOME Settings Daemon
Expired
Medium
gnome-settings-daemon (Ubuntu)
Triaged
Low
Unassigned
Jaunty
Won't Fix
Low
Unassigned

Bug Description

Binary package hint: gnome-settings-daemon

There appears to be a threading issue in gnome-settings-daemon when calling xrdb in xft_settings_set_xresources(). I added debugging to xft_settings_set_xresources() and noticed it was being called properly but the Xft.hintstyle wasn't being updated when changed in System->Preferences->Appearace->Fonts->Details. I tried stracing g-s-d to see if xrdb actually was being called and then it started working 100% properly every time, hence I am pretty sure this is a threading issue of some sort. As soon as I killed strace the problems started up again.

To reproduce this bug do the following:

Have a gnome-terminal window open and run this after changing settings:
xrdb -query

Go to System->Preferences->Appearance->Fonts->Details and change the font hinting to various modes, after each change run the xrdb -query above and notice that often it does not actually update the setting in xrdb. Then run strace on g-s-d and notice it works every time.

Seen on: Core 2 Duo - Ubuntu Jaunty amd64

Chris

ProblemType: Bug
Architecture: amd64
DistroRelease: Ubuntu 9.04
Package: gnome-settings-daemon 2.26.0-0ubuntu3
ProcEnviron:
 SHELL=/bin/bash
 LANG=en_US.UTF-8
SourcePackage: gnome-settings-daemon
Uname: Linux 2.6.28-11-generic x86_64

Revision history for this message
Chris Cheney (ccheney) wrote :
Revision history for this message
Chris Cheney (ccheney) wrote :

I forgot to mention that the program is being called via spawn_with_input() which does threading and a bug in that function is probably the culprit.

Revision history for this message
Chris Cheney (ccheney) wrote :

Also I forgot to mention that the reason I am noticing this bug is due to the fact that OpenOffice.org uses the xrdb information and when it isn't correct it causes OOo to look wrong versus other Gnome desktop apps.

Changed in gnome-settings-daemon (Ubuntu):
assignee: nobody → desktop-bugs
importance: Undecided → High
milestone: none → ubuntu-9.04
Revision history for this message
Sebastien Bacher (seb128) wrote :

the command is called using a classic g_spawn_async call there is no threading used there, that requires to do some extra debugging

summary: - gsd - threading issue causes xrdb hintstyle not to be updated
+ xrdb hintstyle is not correctly updated
Revision history for this message
Alexander Sack (asac) wrote :

i always thought it just spawns a process. For me xrdb was kind of a legacy thing and never expected it to update everywhere instantaneously. If thats supposed to be instantanous its a bug I also saw I think.

Chris, if you change your setting and re-log in, is the xrdb -query output correct?

Revision history for this message
Alexander Sack (asac) wrote :

can you please add g_warning output at the beginning of spawn_with_input and child_watch_cb so we get an idea if we see some kind of race there.

Revision history for this message
Alexander Sack (asac) wrote :

... moved discussion to upstream bug.

Changed in gnome-settings-daemon:
status: Unknown → New
Revision history for this message
Rick Spencer (rick-rickspencer3) wrote :

Alexander - this is currently set to release critical, so should be assigned. Please re-assign if appropriate. Also, is this really a release blocker? Is Importance really High?

Changed in gnome-settings-daemon (Ubuntu Jaunty):
assignee: Ubuntu Desktop Bugs (desktop-bugs) → Alexander Sack (asac)
Revision history for this message
Chris Cheney (ccheney) wrote :

I think this isn't really a release blocker unless the repercussions of what is happening here is more serious than I realize. There is apparently a race condition caused by async executing xrdb, setting the old values when attempting to set new values, and doing so multiple times. This appears to end up causing xrdb to set the old values instead of the new values the user just selected in the gui. This ends up causing anything that uses xrdb, such as OOo, to look wrong when compared to Gnome. Restarting their session after each time they change the value should resolve this issue as far as I know, but users don't know to do this since the change in Gnome takes effect immediately.

Chris

Alexander Sack (asac)
Changed in gnome-settings-daemon (Ubuntu Jaunty):
milestone: ubuntu-9.04 → none
status: New → Won't Fix
Revision history for this message
Martin Pitt (pitti) wrote :

not a jaunty blocker

Revision history for this message
Sebastien Bacher (seb128) wrote :

the issue is only when changing the settings in the capplet not at every login, doesn't seem a high priority or importance bug

Changed in gnome-settings-daemon (Ubuntu):
importance: High → Low
status: New → Triaged
Changed in gnome-settings-daemon (Ubuntu Jaunty):
importance: High → Low
Changed in gnome-settings-daemon:
importance: Unknown → Medium
Changed in gnome-settings-daemon:
status: New → Incomplete
Changed in gnome-settings-daemon:
status: Incomplete → Expired
Martin Pitt (pitti)
Changed in gnome-settings-daemon (Ubuntu):
assignee: Alexander Sack (asac) → nobody
Changed in gnome-settings-daemon (Ubuntu Jaunty):
assignee: Alexander Sack (asac) → nobody
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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