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 751921 - 3.17.3 crashes for many Mageia users
3.17.3 crashes for many Mageia users
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: general
3.17.x
Other All
: Normal blocker
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2015-07-03 19:35 UTC by Olav Vitters
Modified: 2015-07-03 20:45 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
windowManager: Handle missing overrides settings (1.19 KB, patch)
2015-07-03 20:25 UTC, Florian Müllner
committed Details | Review
Patch v1 (602 bytes, patch)
2015-07-03 20:35 UTC, Olav Vitters
rejected Details | Review
build: Bump GIO requirement (778 bytes, patch)
2015-07-03 20:42 UTC, Florian Müllner
committed Details | Review

Description Olav Vitters 2015-07-03 19:35:01 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
Comment 1 Florian Müllner 2015-07-03 20:09:48 UTC
(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.
Comment 2 Florian Müllner 2015-07-03 20:25:39 UTC
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 3 Florian Müllner 2015-07-03 20:27:29 UTC
Comment on attachment 306773 [details] [review]
windowManager: Handle missing overrides settings

Attachment 306773 [details] pushed as dfc4cc4 - windowManager: Handle missing overrides settings
Comment 4 Olav Vitters 2015-07-03 20:35:33 UTC
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.
Comment 5 Florian Müllner 2015-07-03 20:37:49 UTC
Review of attachment 306774 [details] [review]:

No. Please update gobject-introspection to 1.45.3 instead.
Comment 6 Olav Vitters 2015-07-03 20:40:06 UTC
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?
Comment 7 Florian Müllner 2015-07-03 20:42:39 UTC
The following fix has been pushed:
a1149fb build: Bump GIO requirement
Comment 8 Florian Müllner 2015-07-03 20:42:44 UTC
Created attachment 306775 [details] [review]
build: Bump GIO requirement

... for g_settings_schema_list_keys().
Comment 9 Florian Müllner 2015-07-03 20:45:17 UTC
(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.