Comment 38 for bug 491483

Revision history for this message
Urs Fleisch (ufleisch) wrote : Re: after recent update which included xorg, xserver etc causes low-graphics mode error at start

If you have both kdm and gdm installed, you have upstart configurations for both of them:

/etc/init/gdm.conf:
(..)
script
    [ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/gdm" ]
(..)

/etc/init/kdm.conf:
(..)
script
    [ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/bin/kdm" ]
(..)

Since that fatal xserver-xorg update, we also have

/etc/init/failsafe-x.conf:
(..)
start on stopped gdm EXIT_STATUS=[!0]
stop on runlevel [06]

task

exec /etc/gdm/failsafeXServer

If kdm is the active display manager, /etc/X11/default-display-manager contains "/usr/bin/kdm", so upstart will try to start both gdm and kdm, but gdm will fail because of the check quoted above. This will emit a stopped gdm event with EXIT_STATUS != 0, which will start /etc/gdm/failsafeXServer. Now both kdm and failsafeXServer are started and we have a problem.

One solution is to add the following line at the start of /etc/gdm/failsafeXServer:

[ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/gdm" ] || exit 0

This will terminate failsafeXServer if the default display manager is not gdm.

As a patch for the system configuration:
--------------------------------------------------
--- /etc/gdm/failsafeXServer.orig 2009-12-06 12:42:47.000000000 +0100
+++ /etc/gdm/failsafeXServer 2009-12-06 12:44:09.000000000 +0100
@@ -24,6 +24,8 @@
 # not, write to the Free Software Foundation, Inc., 59 Temple Place,
 # Suite 330, Boston, MA 02111-1307 USA

+[ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/gdm" ] || exit 0
+
 xorg_conf_failsafe=${BPX_XORG_CONF_FAILSAFE:-"/etc/X11/xorg.conf.failsafe"}
 xorg_conf=${BPX_XORG_CONF:-"/etc/X11/xorg.conf"}
 run_dexconf=${BPX_RUN_DEXCONF:-"yes"}
-------------------------------------------------

and as a patch for the xserver-xorg package:
-------------------------------------------------
diff -ru xorg-ubuntu-git.orig/debian/local/Failsafe/failsafeXServer xorg-ubuntu-git/debian/local/Failsafe/failsafeXServer
--- xorg-ubuntu-git.orig/debian/local/Failsafe/failsafeXServer 2009-11-09 08:58:44.000000000 +0100
+++ xorg-ubuntu-git/debian/local/Failsafe/failsafeXServer 2009-12-06 13:21:02.000000000 +0100
@@ -24,6 +24,8 @@
 # not, write to the Free Software Foundation, Inc., 59 Temple Place,
 # Suite 330, Boston, MA 02111-1307 USA

+[ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/gdm" ] || exit 0
+
 xorg_conf_failsafe=${BPX_XORG_CONF_FAILSAFE:-"/etc/X11/xorg.conf.failsafe"}
 xorg_conf=${BPX_XORG_CONF:-"/etc/X11/xorg.conf"}
 run_dexconf=${BPX_RUN_DEXCONF:-"yes"}
-------------------------------------------------