GNOME Bugzilla – Bug 751921
3.17.3 crashes for many Mageia users
Last modified: 2015-07-03 20:45:17 UTC
Quoting from mailing list emails. I haven't installed 3.17.3 yet. commit ae2751a68b20ab281ca74affd61562fb8869b639 is very suspicious Javascript does: > if (settings.settings_schema.list_keys().indexOf('dynamic-workspaces') > -1) but shell_global_get_overrides_settings can return NULL. Quoting: Same issue here, with these gnome-session logs from journalctl: Window manager warning: CurrentTime used to choose focus window; focus window may not be correct. (gnome-shell:7947): Gjs-WARNING **: JS ERROR: TypeError: settings.settings_schema.list_keys is not a function WorkspaceTracker<._getWorkspaceSettings@resource:///org/gnome/shell/ui/windowManager.js:220 wrapper@resource:///org/gnome/gjs/modules/lang.js:169 WorkspaceTracker<._init@resource:///org/gnome/shell/ui/windowManager.js:212 wrapper@resource:///org/gnome/gjs/modules/lang.js:169 _Base.prototype._construct@resource:///org/gnome/gjs/modules/lang.js:110 Class.prototype._construct/newClass@resource:///org/gnome/gjs/modules/lang.js:204 WindowManager<._init@resource:///org/gnome/shell/ui/windowManager.js:869 wrapper@resource:///org/gnome/gjs/modules/lang.js:169 _Base.prototype._construct@resource:///org/gnome/gjs/modules/lang.js:110 Class.prototype._construct/newClass@resource:///org/gnome/gjs/modules/lang.js:204 _initializeUI@resource:///org/gnome/shell/ui/main.js:159 start@resource:///org/gnome/shell/ui/main.js:120 @<main>:1 ** Message: Execution of main.js threw exception: JS_EvaluateScript() failed gnome-session[7343]: WARNING: App 'gnome-shell.desktop' exited with code 1 WARNING: App 'gnome-shell.desktop' exited with code 1
(In reply to Olav Vitters from comment #0) > Quoting from mailing list emails. I haven't installed 3.17.3 yet. > > commit ae2751a68b20ab281ca74affd61562fb8869b639 is very suspicious That commit dates back to 3.13.3. > Javascript does: > > if (settings.settings_schema.list_keys().indexOf('dynamic-workspaces') > -1) > > but shell_global_get_overrides_settings can return NULL. Yeah, we should probably handle that (though it will only return NULL for custom user sessions, i.e. *not* the default or classic GNOME session). > Quoting: > Same issue here, with these gnome-session logs from journalctl: > > Window manager warning: CurrentTime used to choose focus window; focus > window may not be correct. > (gnome-shell:7947): Gjs-WARNING **: JS ERROR: TypeError: > settings.settings_schema.list_keys is not a function This however points to the actual problem: g_settings_schema_list_keys() is a new function in GIO, so we need a gobject-introspection tarball that contains https://git.gnome.org/browse/gobject-introspection/commit/?id=d4771aafa9b10a73 to expose it to JS.
Created attachment 306773 [details] [review] windowManager: Handle missing overrides settings shell_global_get_overrides_settings() may return %NULL in case of custom shell modes (i.e. not the default and classic ones); while this is not officially encouraged, we should still handle it rather than throw an error.
Comment on attachment 306773 [details] [review] windowManager: Handle missing overrides settings Attachment 306773 [details] pushed as dfc4cc4 - windowManager: Handle missing overrides settings
Created attachment 306774 [details] [review] Patch v1 This is what avoids the crash. Note that I tried just checking for settings, etc, that all failed to fix it.
Review of attachment 306774 [details] [review]: No. Please update gobject-introspection to 1.45.3 instead.
I'm no developer :-P gobject-introspection 1.45.3 is building right now on Mageia Could you also please check for a new enough gobject-introspection in configure.ac?
The following fix has been pushed: a1149fb build: Bump GIO requirement
Created attachment 306775 [details] [review] build: Bump GIO requirement ... for g_settings_schema_list_keys().
(In reply to Olav Vitters from comment #6) > Could you also please check for a new enough gobject-introspection in > configure.ac? I bumped the glib/gio requirement to the correct version, the expectation is that the g-i bindings match.