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 643663 - gnome-shell fails to start if any extensions path gives permission denied on stat
gnome-shell fails to start if any extensions path gives permission denied on ...
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: general
2.91.x
Other Linux
: Normal normal
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2011-03-02 13:29 UTC by Richard Fuller
Modified: 2011-03-02 15:01 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
extensions: Ignore extensions in directories without read permission (1.24 KB, patch)
2011-03-02 13:45 UTC, Florian Müllner
committed Details | Review

Description Richard Fuller 2011-03-02 13:29:15 UTC
Version: 2.91.90

In my case:
/home/username/.local/share/gnome-shell/extensions - exists
/usr/share/gnome-shell/extensions - doesn't exist
/usr/local/share/gnome-shell/extensions - not statable, permission denied (due to Kerberised mount)

What should happen:
gnome-shell should start, using extensions in the paths it could read, and ignoring the path it did not have permission to read

What happens:
gnome-shell fails to start, error log...

    JS ERROR: !!!   Exception was: Error: Error invoking Gio.enumerate_children: Permission denied
    JS ERROR: !!!     lineNumber = '0'
    JS ERROR: !!!     fileName = 'gjs_throw'
    JS ERROR: !!!     stack = 'Error("Error invoking Gio.enumerate_children: Permission denied")@:0
("Error invoking Gio.enumerate_children: Permission denied")@gjs_throw:0
@:0
_loadExtensionsIn([object _private_GObject_GLocalFile],1)@/usr/share/gnome-shell/js/ui/extensionSystem.js:177
loadExtensions()@/usr/share/gnome-shell/js/ui/extensionSystem.js:198
start()@/usr/share/gnome-shell/js/ui/main.js:193
@<main>:1
'
    JS ERROR: !!!     message = 'Error invoking Gio.enumerate_children: Permission denied'
Window manager warning: Log level 32: Execution of main.js threw exception: Error: Error invoking Gio.enumerate_children: Permission denied
Comment 1 Florian Müllner 2011-03-02 13:45:48 UTC
Created attachment 182248 [details] [review]
extensions: Ignore extensions in directories without read permission

Gio.enumerate_children() throws an exception if called for a directory
without read permissions. Catch this case to allow the shell to start.
Comment 2 Colin Walters 2011-03-02 14:35:19 UTC
Review of attachment 182248 [details] [review]:

Looks fine.
Comment 3 Florian Müllner 2011-03-02 15:01:22 UTC
Attachment 182248 [details] pushed as 6207c68 - extensions: Ignore extensions in directories without read permission