GNOME Bugzilla – Bug 585690
Xrandr: GLib-CRITICAL **: g_propagate_error: assertion `src != NULL' failed
Last modified: 2009-12-19 03:20:46 UTC
Please describe the problem: Starting gnome-settings-daemon leads to following log message (repeated once): (gnome-settings-daemon:4029): GLib-CRITICAL **: g_propagate_error: assertion `src != NULL' failed The output of "g-s-d --no-daemon --debug" (attached) indicates that the xrandr plugin might be the culprit. Also attached: strace output, full backtrace (one function shwoing '??' might be maybe_activate_plugin() - had no idea which debug symbols were missing). Steps to reproduce: Actual results: Expected results: Does this happen every time? Other information: Launchpad bug report: https://bugs.launchpad.net/ubuntu/+source/gstreamer0.10/+bug/384439 Strace output also made me find this bug report: http://bugzilla.gnome.org/show_bug.cgi?id=565785 but I'm not sure if there is a connection.
Created attachment 136523 [details] debug output
Created attachment 136524 [details] strace output
Created attachment 136525 [details] backtrace
That seems to indicate a problem in gnome-desktop. It looks like one of the functions called by g-s-d (something called by gnome_rr_config_apply_from_filename) returns FALSE without initializing the error passed to it. I guess it'd be useful if you could step through to find out which one it is.
Ubuntus patched gnome_rr_config_apply_from_filename function: http://paste.ubuntu.com/195593/ (error should also occur with the unpatched version). *) gnome_rr_screen_refresh() returns FALSE, so the if-path is taken. *) 'my_error' is NULL so we skip to the desired filename test which fails, so the else-path is taken. *) config_new_stored() then tries to read from 'filename' which doesn't exist and therefor returns NULL. *) finally gnome_rr_config_apply_from_filename returns FALSE with 'my_error' being uninitialized. gnome_rr_screen_refresh() in gnome-rr.c passes 'my_error' to screen_update(), which passes it screen_info_new(), which passes it to fill_out_screen_info(), where it finally should be set. As I don't know if 'my_screen' should even get initialized I haven't followed that road, but tell me if I should.
Uhm, forget the last paragraph... (it should be 'my_error' and gnome_rr_config_apply_from_filename is called with an uninitialized error anyway - didn't get the concept right ;)).
Me again: I touched the two non-existing files causing the warnings (~/.config/monitors.xml.backup and ~/.config/monitors.xml) and the g_propagate_error errors were gone but subsequent efforts to apply the configuration from those empty files threw three CRITICAL errors (see attachment). First things first: is it ok that I don't have those two files? (I'm currently running Ubuntu 9.10 Alpha 2 with the 'vesa' video driver, if that's relevant.)
Created attachment 136575 [details] critical warnings after touching missing files
Not a fix for the underlying problem but a way to stop the error messages: *) Running "System > Preferences > Screen" and clicking on "Apply" created a valid file ~/.config/monitors.xml. That reduced the number of error messages from two to one (monitors.xml.backup still missing). *) Copying monitors.xml to monitors.xml.backup made the error messages go away.
Does this error also happen without Ubuntu's patches? The function you sent shows an Ubuntu patch based on an old version of the code in gnome-desktop --- in the new version, gnome_rr_config_apply_from_filename() is just a stub that calls gnome_rr_config_apply_from_filename_with_time().
Yes, current sources used in Ubuntu are at 2.27.4 and I see that stub but I assume that it would also happen without patch since stored = config_new_stored (screen, filename, error); would still be called with the URL to a non-existent file (stored = 'NULL'). That will cause gnome_rr_config_apply_from_filename_with_time() to return 'FALSE' and therefor apply_configuration_from_filename() in gsd-xrandr-manager.c will cause the error.
Ok, I downloaded Ubuntu's source code, removed the patch in question, used debuild to create the packages, installed them and did a session restart: no complaints. So I guess this goes back to Launchpad?
Yes, please.
Hallo, In recent days I started to have problems with my gnome desktop session with error messages like GLib-CRITICAL **: g_propagate_error: assertion `src != NULL' failed in my .xsession-errors. To make matters worse, it would cause my x session freeze. A restart or reload of the gdm daemon did not do any good. I had to reboot, which resulted in a files system check. This did not happen every time, but only every fourth boot or so. I am running ubuntu jaunty. I scanned bug reports a bit and reverted the 100_load_desired_settings.patch and rebuilt the package gnome-desktop and so far haven't seen the problem that panel applets would take several seconds to load and the session to freeze. Also the above assertion would vanish from .xsession-errors. Can you clarify a bit?! thomas
Nope, that did not solve it. Upgraded ubuntu to 9.10 instead, and haven't seen the problem yet, so far - after a couple of reboot's.
A final note. Maybe it's of help for people with similar problems. After I followed instructions on HOWTO: PulseAudio Fixes & System-Wide Equalizer Support, http://ubuntuforums.org/showthread.php?t=789578, I haven't had any hangs while booting up my machine so far, about a week.