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 711238 - segfault in notify_have_shell()
segfault in notify_have_shell()
Status: RESOLVED FIXED
Product: gnome-settings-daemon
Classification: Core
Component: xsettings
3.8.x
Other Linux
: Normal normal
: ---
Assigned To: gnome-settings-daemon-maint
gnome-settings-daemon-maint
Depends on:
Blocks:
 
 
Reported: 2013-11-01 00:49 UTC by Sebastien Bacher
Modified: 2013-11-09 12:18 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
xsettings: unwatch dbus before destroying xsettings managers (1.49 KB, patch)
2013-11-09 00:01 UTC, darkxst
none Details | Review
xsettings: unwatch dbus before destroying xsettings managers (1.49 KB, patch)
2013-11-09 00:14 UTC, darkxst
none Details | Review
xsettings: unwatch dbus before destroying xsettings managers (1.46 KB, patch)
2013-11-09 01:37 UTC, darkxst
committed Details | Review

Description Sebastien Bacher 2013-11-01 00:49:02 UTC
The bug has been reported on https://bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/1232419

There is no useful bug description, it might be happening at logout...

Stacktrace from 3.8.1

"#0  0x00007fd23205ec76 in notify_have_shell (manager=0x7fd22c013de0, have_shell=0) at gsd-xsettings-manager.c:719
        i = 0
        __PRETTY_FUNCTION__ = "notify_have_shell"
  • #1 call_in_idle_cb
    at gdbusnamewatching.c line 180
  • #2 g_main_dispatch
    at gmain.c line 3054
  • #3 g_main_context_dispatch
    at gmain.c line 3630
  • #4 g_main_context_iterate
    at gmain.c line 3701
  • #5 g_main_loop_run
    at gmain.c line 3895
  • #6 gtk_main
    at gtkmain.c line 1156


The issue is not distribution specific, fedora has similar reports, e.g https://bugzilla.redhat.com/show_bug.cgi?id=967087
Comment 1 Matthias Clasen 2013-11-02 18:53:32 UTC
Looks like we should stop watching the bus name when we stop the the xsettings manager ?
Comment 2 Bastien Nocera 2013-11-02 19:44:34 UTC
We already do, see shell_name_watch_id(). And 3.8.1? There were 5 bug fixes in the meanwhile.
Comment 3 Sebastien Bacher 2013-11-02 19:49:10 UTC
https://bugzilla.redhat.com/show_bug.cgi?id=967087 is from 3.8.1, the most recent duplicate in Ubuntu (https://bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/1238454) is from 3.8.5
Comment 4 darkxst 2013-11-09 00:01:47 UTC
Created attachment 259302 [details] [review]
xsettings: unwatch dbus before destroying xsettings managers

fix possible race since notify_have_shell is getting called after the
managers are destroyed.
Comment 5 darkxst 2013-11-09 00:14:15 UTC
Created attachment 259303 [details] [review]
xsettings: unwatch dbus before destroying xsettings managers

fix possible race since notify_have_shell is getting called after the
managers are destroyed.
Comment 6 darkxst 2013-11-09 01:37:52 UTC
Created attachment 259306 [details] [review]
xsettings: unwatch dbus before destroying xsettings managers

fix possible race since notify_have_shell is getting called after the
managers are destroyed.

make access to priv object consistent with rest of the function
Comment 7 Bastien Nocera 2013-11-09 12:18:20 UTC
Attachment 259306 [details] pushed as a1acdc0 - xsettings: unwatch dbus before destroying xsettings managers