After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 655193 - forgets to initialize error
forgets to initialize error
Status: RESOLVED FIXED
Product: dconf
Classification: Core
Component: gsettings backend
git master
Other Linux
: Normal normal
: ---
Assigned To: dconf-maint
dconf-maint
Depends on:
Blocks:
 
 
Reported: 2011-07-24 02:16 UTC by Matthias Clasen
Modified: 2011-07-24 07:55 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
patch (1.22 KB, patch)
2011-07-24 02:19 UTC, Matthias Clasen
none Details | Review

Description Matthias Clasen 2011-07-24 02:16:34 UTC
I'm seeing the following problem occasionally while running the glib tests:

(gdb) r
Starting program: /home/mclasen/gnome-3.0/checkoutroot/glib/gio/tests/.libs/lt-pollable 
[Thread debugging using libthread_db enabled]
/pollable/unix: OK
/pollable/socket: [New Thread 0x7ffff6c53700 (LWP 27508)]

GLib-GIO-CRITICAL **: g_bus_get_sync: assertion `error == NULL || *error == NULL' failed

Program received signal SIGTRAP, Trace/breakpoint trap.

Thread 140737333507840 (LWP 27508)

  • #0 g_logv
    from /home/mclasen/gnome-3.0/checkoutroot/glib/glib/.libs/libglib-2.0.so.0
  • #1 g_log
    from /home/mclasen/gnome-3.0/checkoutroot/glib/glib/.libs/libglib-2.0.so.0
  • #2 g_return_if_fail_warning
    from /home/mclasen/gnome-3.0/checkoutroot/glib/glib/.libs/libglib-2.0.so.0
  • #3 g_bus_get_sync
    from /home/mclasen/gnome-3.0/checkoutroot/glib/gio/.libs/libgio-2.0.so.0
  • #4 dconf_settings_backend_send
    from /home/mclasen/gnome-3.0/install/lib64/gio/modules/libdconfsettings.so
  • #5 dconf_settings_backend_subscribe_context_func
    from /home/mclasen/gnome-3.0/install/lib64/gio/modules/libdconfsettings.so
  • #6 g_idle_dispatch
    from /home/mclasen/gnome-3.0/checkoutroot/glib/glib/.libs/libglib-2.0.so.0
  • #7 g_main_dispatch
    from /home/mclasen/gnome-3.0/checkoutroot/glib/glib/.libs/libglib-2.0.so.0
  • #8 g_main_context_dispatch
    from /home/mclasen/gnome-3.0/checkoutroot/glib/glib/.libs/libglib-2.0.so.0
  • #9 g_main_context_iterate
    from /home/mclasen/gnome-3.0/checkoutroot/glib/glib/.libs/libglib-2.0.so.0
  • #10 g_main_loop_run
    from /home/mclasen/gnome-3.0/checkoutroot/glib/glib/.libs/libglib-2.0.so.0
  • #11 dconf_context_thread


Turns out that this is happening because gdbus-address uses a socket client, which in turn uses a proxy resolver, whose gnome backend uses gsettings, whose dconf backend has a bug in error handling... what a twisted maze we weave :-(

See the attached patch.
Comment 1 Matthias Clasen 2011-07-24 02:19:24 UTC
Created attachment 192548 [details] [review]
patch
Comment 2 Allison Karlitskaya (desrt) 2011-07-24 07:55:12 UTC
Thanks for the catch.

Your patch leaks the GError.  Since we don't use it anyway, I'm just going to remove it and pass NULL.