assertion failure: g_propagate_error: assertion `src != NULL' failed

Bug #449380 reported by Laurent Bonnaud
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
GNOME Settings Daemon
Invalid
Undecided
Unassigned
gnome-desktop (Ubuntu)
Triaged
Low
Ubuntu Desktop Bugs

Bug Description

Binary package hint: gnome-settings-daemon

Each time I report a bug with ubuntu-bug, it extracts messages from my .xsession-errors file and among those is the following error message:

(gnome-settings-daemon:3528): GLib-CRITICAL **: g_propagate_error: assertion `src != NULL' failed

I am using KDE4 with some GNOME software if that matters.

In order to weed out noise in bug reports, could someone please fix this assertion ?

ProblemType: Bug
Architecture: i386
Date: Mon Oct 12 11:39:23 2009
DistroRelease: Ubuntu 9.10
Package: gnome-settings-daemon 2.28.0-0ubuntu3 [modified: usr/lib/gnome-settings-daemon/gnome-settings-daemon usr/lib/gnome-settings-daemon/gsd-locate-pointer]
ProcVersionSignature: Ubuntu 2.6.31-13.44-generic-pae
SourcePackage: gnome-settings-daemon
Uname: Linux 2.6.31-13-generic-pae i686
XsessionErrors:
 (polkit-gnome-authentication-agent-1:3501): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
 (gnome-settings-daemon:3528): GLib-CRITICAL **: g_propagate_error: assertion `src != NULL' failed

Revision history for this message
Laurent Bonnaud (laurent-bonnaud) wrote :
Changed in gnome-settings-daemon (Ubuntu):
assignee: nobody → Ubuntu Desktop Bugs (desktop-bugs)
importance: Undecided → Low
status: New → Confirmed
Revision history for this message
Chris Coulson (chrisccoulson) wrote :

The error is occuring here:

#0 0x00007ffff46df4b5 in *__GI_raise (sig=<value optimised out>)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
        pid = <value optimised out>
        selftid = <value optimised out>
#1 0x00007ffff46e2f50 in *__GI_abort () at abort.c:92
        act = {__sigaction_handler = {
            sa_handler = 0x6094e0 <g_threads_got_initialized>,
            sa_sigaction = 0x6094e0 <g_threads_got_initialized>}, sa_mask = {
            __val = {140737307255496, 6891648, 6948896, 2, 140737351988693,
              81, 140737297608256, 140737294052016, 140737353934008,
              140737300433056, 4294967295, 6329568, 140737299816448,
              140737488346960, 10, 140737488345824}}, sa_flags = 6329568,
          sa_restorer = 0x2c5068}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2 0x00007ffff4c77dfa in IA__g_logv (log_domain=<value optimised out>,
    log_level=<value optimised out>, format=<value optimised out>,
    args1=0x7fffffffdf50) at /build/buildd/glib2.0-2.22.2/glib/gmessages.c:549
        depth = <value optimised out>
        domain = <value optimised out>
        data = 0x0
        log_func = 0x404790
        domain_fatal_mask = -1
        test_level = 10
        was_recursion = 0
        i = <value optimised out>
#3 0x00007ffff4c77e93 in IA__g_log (
    log_domain=0x40d <Address 0x40d out of bounds>, log_level=1037,
    format=0x6 <Address 0x6 out of bounds>)
    at /build/buildd/glib2.0-2.22.2/glib/gmessages.c:569
        args = {{gp_offset = 24, fp_offset = 48,
            overflow_arg_area = 0x7fffffffe030,
            reg_save_area = 0x7fffffffdf70}}
#4 0x00007fffef23064d in apply_configuration_from_filename (
    manager=<value optimised out>,
    filename=0x6a4180 "/home/chr1s/.config/monitors.xml.backup", timestamp=0,
    error=0x7fffffffe088, no_matching_config_is_an_error=<value optimised out>)
    at gsd-xrandr-manager.c:187
        priv = 0x64c0c0
        my_error = 0x0
        success = <value optimised out>
#5 0x00007fffef230a7b in apply_stored_configuration_at_startup (
    manager=0x64c0a0, error=<value optimised out>) at gsd-xrandr-manager.c:1856
        success = <value optimised out>
        intended_filename = 0x6a41d0 "/home/chr1s/.config/monitors.xml"
        my_error = 0x0
        backup_filename = 0x6a4180 "/home/chr1s/.config/monitors.xml.backup"
#6 gsd_xrandr_manager_start (manager=0x64c0a0, error=<value optimised out>)
    at gsd-xrandr-manager.c:1933
        __PRETTY_FUNCTION__ = "gsd_xrandr_manager_start"
#7 0x00007fffef22dcc7 in impl_activate (plugin=0x69de10)
    at gsd-xrandr-plugin.c:78
        res = <value optimised out>
        error = 0x0
#8 0x0000000000405cdd in gnome_settings_plugin_info_activate ()
No symbol table info available.
#9 0x0000000000404975 in ?? ()
No symbol table info available.
#10 0x00007ffff4c8c53c in IA__g_slist_foreach (list=<value optimised out>,
    func=0x404960, user_data=0x0)
    at /build/buildd/glib2.0-2.22.2/glib/gslist.c:743
        next = 0x68ef20
#11 0x000000000040537c in gnome_settings_manager_start ()
No symbol table info available.
#12 0x0000000000404771 in main ()
No symbol table info available.

Revision history for this message
Chris Coulson (chrisccoulson) wrote :

This might be a gnome-desktop issue as it seems that gnome_rr_config_apply_from_filename_with_time() returns FALSE but doesn't set the GError

Revision history for this message
Chris Coulson (chrisccoulson) wrote :

Sure enough, that is exactly what is happening according to the info here in GDB. Reassigning to gnome-desktop

affects: gnome-settings-daemon (Ubuntu) → gnome-desktop (Ubuntu)
Revision history for this message
Chris Coulson (chrisccoulson) wrote :

The issue is with 100_load_desired_settings.patch. In gnome_rr_config_apply_from_filename_with_time(), there is this new code section:

if (stored) {
     gboolean result = FALSE;

        /* Check framebuffer size. Do not apply
      * the settings if the fb is not big
      * enough
      */
        if (check_framebuffer_size (stored, screen)) {

         result = gnome_rr_config_apply_with_time (stored, screen, timestamp, error);

         /* if we are using the desired settings and
            the settings were applied successfully */
         if (is_desired && result) {
                /* Try to save the desired settings to the default
                 * settings file
                 */
                error = NULL;
                gnome_rr_config_sanitize (stored);
                gnome_rr_config_save (stored, &error);
         }

     }

     gnome_rr_config_free (stored);

     return result;

check_framebuffer_size (stored, screen) evaluates to FALSE on my setup, which means gnome_rr_config_apply_from_filename_with_time() just returns FALSE without setting the GError, which is wrong (FALSE means that there was an error).

Changed in gnome-settings-daemon:
status: New → Invalid
Changed in gnome-desktop (Ubuntu):
status: Confirmed → Triaged
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.