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 661206 - gvfsd-smb-browse crashed with SIGSEGV in g_object_unref()
gvfsd-smb-browse crashed with SIGSEGV in g_object_unref()
Status: RESOLVED OBSOLETE
Product: gvfs
Classification: Core
Component: general
1.10.x
Other Linux
: Normal critical
: ---
Assigned To: gvfs-maint
gvfs-maint
Depends on:
Blocks:
 
 
Reported: 2011-10-07 17:19 UTC by Pedro Villavicencio
Modified: 2018-09-21 17:11 UTC
See Also:
GNOME target: ---
GNOME version: 3.1/3.2



Description Pedro Villavicencio 2011-10-07 17:19:41 UTC
this report has been filed here:

https://bugs.launchpad.net/ubuntu/+source/gvfs/+bug/869405

".

Thread 1 (Thread 0x7fe7680007e0 (LWP 5361))

  • #0 g_settings_backend_unsubscribe
    at /build/buildd/glib2.0-2.30.0/./gio/gsettingsbackend.c line 859
  • #1 g_settings_finalize
    at /build/buildd/glib2.0-2.30.0/./gio/gsettings.c line 555
  • #2 g_object_unref
    at /build/buildd/glib2.0-2.30.0/./gobject/gobject.c line 2746
  • #3 g_vfs_backend_smb_browse_init
    at gvfsbackendsmbbrowse.c line 262
  • #4 g_type_create_instance
    at /build/buildd/glib2.0-2.30.0/./gobject/gtype.c line 1885
  • #5 g_object_constructor
    at /build/buildd/glib2.0-2.30.0/./gobject/gobject.c line 1629
  • #6 g_vfs_backend_constructor
    at gvfsbackend.c line 265
  • #7 g_object_newv
    at /build/buildd/glib2.0-2.30.0/./gobject/gobject.c line 1493
  • #8 g_object_new_valist
    at /build/buildd/glib2.0-2.30.0/./gobject/gobject.c line 1610
  • #9 g_object_new
    at /build/buildd/glib2.0-2.30.0/./gobject/gobject.c line 1325
  • #10 g_vfs_daemon_initiate_mount
    at gvfsdaemon.c line 1073
  • #11 daemon_start_mount
    at gvfsdaemon.c line 881
  • #12 daemon_message_func
    at gvfsdaemon.c line 983
  • #13 dbus_connection_dispatch
    at ../../dbus/dbus-connection.c line 4603
  • #14 message_queue_dispatch
    at dbus-gmain.c line 127
  • #15 g_main_dispatch
    at /build/buildd/glib2.0-2.30.0/./glib/gmain.c line 2441
  • #16 g_main_context_dispatch
    at /build/buildd/glib2.0-2.30.0/./glib/gmain.c line 3011
  • #17 g_main_context_iterate
    at /build/buildd/glib2.0-2.30.0/./glib/gmain.c line 3089
  • #18 g_main_loop_run
    at /build/buildd/glib2.0-2.30.0/./glib/gmain.c line 3297
  • #19 daemon_main
    at daemon-main.c line 301
  • #20 main
    at daemon-main-generic.c line 39

Comment 1 Milan Crha 2012-02-20 07:16:15 UTC
I have pretty same issue with evolution and its EProxy, which I made to use GSettings. It didn't have this issue earlier, when half of it was using GConf and the other half GSettings (systme proxy settings were read from GSettings, while evolution was using GConf). After migration of GConf to GSettings this got to be an issue.

----------------------------------------------------------------------------

This is what I do:
   e_proxy_init():
	proxy->priv->evolution_proxy_settings = g_settings_new ("org.gnome.evolution.shell.network-config");
	proxy->priv->proxy_settings = g_settings_new ("org.gnome.system.proxy");
	proxy->priv->proxy_http_settings = g_settings_get_child (proxy->priv->proxy_settings, "http");
	proxy->priv->proxy_https_settings = g_settings_get_child (proxy->priv->proxy_settings, "https");
	proxy->priv->proxy_socks_settings = g_settings_get_child (proxy->priv->proxy_settings, "socks");

   e_proxy_dispose ():
	if (priv->evolution_proxy_settings) {
		g_signal_handlers_disconnect_by_func (priv->evolution_proxy_settings, ep_evo_proxy_changed_cb, proxy);
		g_object_unref (priv->evolution_proxy_settings);
		priv->evolution_proxy_settings = NULL;
	}

	if (priv->proxy_settings) {
		g_signal_handlers_disconnect_by_func (priv->proxy_settings, ep_sys_proxy_changed_cb, proxy);
		g_object_unref (priv->proxy_settings);
		priv->proxy_settings = NULL;
	}

----------------------------------------------------------------------------

The schema was added during the rewrite, and opening dconf-editor at that new key claims "No Schema", thus can this crash be caused by the schema not being installed in the system directory, but in my build directory only? I'm just guessing, because I didn't see this crash before this particular change.
Comment 2 Milan Crha 2012-02-20 09:47:35 UTC
I overlooked in the crash catch this:
> ** GLib-GIO **: Settings schema 'org.gnome.evolution.eds-shell' is
> not installed

and realized that it does crash only if I let the evolution-calendar-factory run by DBus (it's a DBus service), but if I run it beforehand, in my develop environment, then everything works as expected.

Thus this is just about the missing GSettings schema.
Comment 3 Tomas Bzatek 2012-02-20 14:27:37 UTC
Right, missing schema could be the reason. Pedro, could you please verify the gsettings-desktop-schemas is installed properly and there are no warnings/assertion fails during runtime?

I see one potential issue here - the g_settings_new() constructor could either return NULL or an object that can't do any I/O. But I think a missing schema would assert and abort the process.

The other thing that crossed my mind is that you might be using a legacy GConf backend instead of dconf. Setting the "GSETTINGS_BACKEND=dconf-settings" env. var should ensure using a dconf backend.
Comment 4 GNOME Infrastructure Team 2018-09-21 17:11:25 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/gvfs/issues/174.