Back in July I reported a bug that I was having with Ubuntu’s Unity 2D Launcher. The launcher would crash and restart constantly, chewing up a lot of CPU time. I had to switch back to the classic Gnome desktop to continue working, I can’t run Unity (3D) because of a bug in NVIDIA’s drivers that prevent icons being displayed in the launcher.
Fortunately Florian Boucault picked up the bug report and pointed out that dconf — the system that Unity 2D uses to store its configuration — does not currently work over NFS.
The workaround is to store dconf databases locally by setting XDG_CONFIG_HOME during the user login process, before X gets started. Here is a script that will do the job when placed in /etc/profile.d/
# /etc/profile.d/local-config.sh
# Set XDG_CONFIG_HOME, XDG_CONFIG_CACHE and ICEAUTHORITY to a local path
# Gnome dconf does not currently work over NFS,
# so make sure configs are stored locally.
# Ubuntu Bug: https://bugs.launchpad.net/ubuntu/+source/unity-2d/+bug/817368
# Gnome Bug: https://bugzilla.gnome.org/show_bug.cgi?id=595579
# All other programs that honour the location of XDG_CONFIG_HOME
# will also store their configurations here.
# Set CONFIG_BASE_DIR to any local directory where the user
# has write access to create it.
CONFIG_BASE_DIR=/home/configs/${USER}
[ –d ${CONFIG_BASE_DIR} ] || mkdir –p ${CONFIG_BASE_DIR}
export XDG_CONFIG_HOME=$CONFIG_BASE_DIR/config
export XDG_CACHE_HOME=$CONFIG_BASE_DIR/cache
# X11 throws an error on login when .ICEauthority is located on NFS
# Ubuntu Bug: https://bugs.launchpad.net/ubuntu/+bug/761991
export ICEAUTHORITY=$CONFIG_BASE_DIR/.ICEauthority
I also took the opportunity to move .ICEauthority from my home directory because I get an error that it can’t be updated every time I log in.
Pingback: Evince on NFS kills Ubuntu Desktop: - steveblamey.co.uk