GNOME Bugzilla – Bug 740151
xrandr: Our DBus API registration races with remaining initialization
Last modified: 2014-11-19 16:13:47 UTC
I believe this is the cause of crashes such as https://bugzilla.redhat.com/show_bug.cgi?id=1156279 In particular note that bug report's log: Oct 17 12:33:24 yoga gnome-session[971]: (gnome-settings-daemon:1025): GnomeDesktop-CRITICAL **: gnome_rr_screen_list_outputs: assertion 'GNOME_IS_RR_SCREEN (screen)' failed
Created attachment 290742 [details] [review] xrandr: Free GnomeRRConfigs on stop They won't leak if the plugin is stopped and started again but they do if we reach finalize() which isn't really a problem but there's no reason to keep them around anyway.
Created attachment 290743 [details] [review] xrandr: Register our DBus API only after all other initialization Otherwise we risk being called and not have all out internal state ready (e.g. priv->rw_screen being NULL) leading to crashes. We also need to disown our well known name on stop() since we'll reaquire it if start() gets called again.
Review of attachment 290742 [details] [review]: Sure.
Review of attachment 290743 [details] [review]: Sure thing.
54b8f0f..e4b1d27 gnome-3-14 -> gnome-3-14 1baf510..26f984f master -> master Attachment 290742 [details] pushed as 6152d02 - xrandr: Free GnomeRRConfigs on stop Attachment 290743 [details] pushed as 26f984f - xrandr: Register our DBus API only after all other initialization