GNOME Bugzilla – Bug 611214
Can't start g-s: GConf schemas not found
Last modified: 2010-03-12 22:06:03 UTC
Since a couple of days ago, I've been unable to start up the shell. I'm running via jhbuild, and I have reproduced the error below. $ ./gnome-shell -r JS ERROR: !!! Exception was: TypeError: this._gconf.get_string(WORKSPACES_VIEW_KEY) is null JS ERROR: !!! lineNumber = '962' JS ERROR: !!! fileName = '/home/josh/gnome-shell/install/share/gnome-shell/js/ui/workspacesView.js' JS ERROR: !!! stack = '()@/home/josh/gnome-shell/install/share/gnome-shell/js/ui/workspacesView.js:962 WorkspacesViewSwitch()@/home/josh/gnome-shell/install/share/gnome-shell/js/ui/workspacesView.js:952 ()@/home/josh/gnome-shell/install/share/gnome-shell/js/ui/overview.js:200 Overview()@/home/josh/gnome-shell/install/share/gnome-shell/js/ui/overview.js:189 start()@/home/josh/gnome-shell/install/share/gnome-shell/js/ui/main.js:115 @<main>:1 ' JS ERROR: !!! message = 'this._gconf.get_string(WORKSPACES_VIEW_KEY) is null' Window manager warning: Log level 32: Execution of main.js threw exception: TypeError: this._gconf.get_string(WORKSPACES_VIEW_KEY) is null Checking for Xgl: not present. xset q doesn't reveal the location of the log file. Using fallback /var/log/Xorg.0.log Detected PCI ID for VGA: Checking for texture_from_pixmap: present. Checking for non power of two support: present. Checking for Composite extension: present. Checking screen 1Comparing resolution (1280x800) to maximum 3D texture size (2048): Passed. Checking for Software Rasterizer: Not present. Checking for nVidia: not present. Checking for FBConfig: present. Checking for Xgl: not present. WARNING: Application calling GLX 1.3 function "glXCreatePixmap" when GLX 1.3 is not supported! This is an application bug! ** (gnome-panel:29688): DEBUG: Adding applet 0. ** (gnome-panel:29688): DEBUG: Initialized Panel Applet Signaler. ** (gnome-panel:29688): DEBUG: Adding applet 1. ** (gnome-panel:29688): DEBUG: Adding applet 2. ** (gnome-panel:29688): DEBUG: Adding applet 3. ** (gnome-panel:29688): DEBUG: Adding applet 4. WARNING: Application calling GLX 1.3 function "glXDestroyPixmap" when GLX 1.3 is not supported! This is an application bug! ** (gnome-panel:29688): DEBUG: Adding applet 5. ** (gnome-panel:29688): DEBUG: Adding applet 6. ** (gnome-panel:29688): DEBUG: Adding applet 7. /usr/bin/compiz.real (video) - Warn: No 8 bit GLX pixmap format, disabling YV12 image format ** (gnome-panel:29688): DEBUG: Adding applet 8. ** (gnome-panel:29688): DEBUG: Adding applet 9. ** (gnome-panel:29688): DEBUG: Adding applet 10. ** (gnome-panel:29688): DEBUG: Adding applet 11. (gnome-panel:29688): Gdk-WARNING **: /build/buildd/gtk+2.0-2.18.3/gdk/x11/gdkdrawable-x11.c:952 drawable is not a pixmap or window ** (gnome-panel:29688): DEBUG: Adding applet 12. $ gconftool-2 -R /desktop/gnome/shell # since it seems to be a gconf thing developer_tools = true view = 1 favorite_apps = [terminator.desktop,rhythmbox.desktop,gwibber.desktop,chromium-browser.desktop] /desktop/gnome/shell/sidebar: visible = false expanded = false
Created attachment 154958 [details] [review] Fix crash when WorkspacesViewKey is unset
Comment on attachment 154958 [details] [review] Fix crash when WorkspacesViewKey is unset The real problem here is that the schema is not being applied for some reason, which should not actually be possible if you're running from jhbuild (or from a properly-built package). It is not specific to this key; if the reporter tries to use the screen recorder, that will presumably crash as well. Maybe we should just refuse to start if the gconf schema isn't present.
Created attachment 155061 [details] [review] Crash at startup if the GConf schemas are missing should we include a link to something on the wiki?
(In reply to comment #3) > Created an attachment (id=155061) [details] [review] > Crash at startup if the GConf schemas are missing If we want to crash on startup, shouldn't we check for the latest schema addition? Note that this patch does not catch the original problem above (/desktop/gnome/shell/developer_tools does exist from a previous install) - of course, to really be effective, the check has to be updated on each schema change. It doesn't sound too much to ask, but neither does updating the schema on key additions ...
this only catches "gconf is totally messed up". it doesn't catch "gconf is mostly working but you're trying to run without having done make install".
Clarifying, the original problem is not "gconf used to work fine but now it doesn't work for just this one key". It's "gconf doesn't work for any key". It's just that this only causes crashes with string-valued keys, because the default values for list-, boolean-, and int-valued keys just result in incorrect behavior, not crashes. Actually, this bug is probably the same bug as "I don't have any applications in the app well", because that would be caused by getting back an empty list for the value of /desktop/gnome/shell/favorite_apps, instead of the correct default value from the schema.
Review of attachment 155061 [details] [review]: Yes. Can you remind me though how the uninstalled-gconf hack works? Maybe worth a comment link there, or even in the error message?
(In reply to comment #7) > Yes. Can you remind me though how the uninstalled-gconf hack works? Maybe > worth a comment link there, or even in the error message? There's no uninstalled-gconf hack; if you haven't run 'make install', you don't get the schemas... jhbuild takes care of this automatically, so it shouldn't normally be a problem. If you add a new key and then try to run without rebuilding, you'd have problems though... but I don't think there's anything we can do about that.
Is there a fix to make it run on this box, instead of just "Oh dear, the GConf schemas aren't installed properly, crash on startup"?
oh, are you using an up-to-date jhbuild? (if you are using a jhbuild binary from a package, the answer is probably "no".) In particular, do you have a file ~/gnome-shell/install/etc/gconf/2/path.jhbuild? If not, then build an up-to-date jhbuild, then rebuild the gnome-shell packageset (with "jhbuild build -fac" to forcibly rebuild everything from scratch).
Updating everything and rebuilding got it working.
(In reply to comment #11) > Updating everything and rebuilding got it working. Cool, closing then.