Bug 143928 - x11-apps/xinit - xdm starts before home dir on nfs mount is mounted
Bug#: 143928 Product:  Gentoo Linux Version: unspecified Platform: All
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: x11@gentoo.org Reported By: phs.de.vries@gmail.com
Component: Ebuilds
URL: 
Summary: x11-apps/xinit - xdm starts before home dir on nfs mount is mounted
Keywords:  
Status Whiteboard: 
Opened: 2006-08-14 12:51 0000
Description:   Opened: 2006-08-14 12:51 0000
On my system where the user home-dir is located on a nfs server, users can not
login directly after reboot there nfs directories are not mounted at the moment
xdm is started. This causes xdm to fail (blank screen). A xdm restart is needed
to recover.

using xorg-x11-7.0-r1 and baselayout-1.12.4-r4
emerge --info:
Portage 2.1-r2 (default-linux/x86/2006.0, gcc-3.4.6, glibc-2.3.6-r3,
2.6.15-gentoo-r1 i686)
=================================================================
System uname: 2.6.15-gentoo-r1 i686 Pentium III (Coppermine)
Gentoo Base System version 1.12.4
ccache version 2.3 [disabled]
app-admin/eselect-compiler: [Not Present]
dev-lang/python:     2.3.5-r2, 2.4.2
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.3
dev-util/confcache:  0.4.2-r1
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.16.1-r3
sys-devel/gcc-config: 1.3.13-r2
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O3 -march=pentium3 -momit-leaf-frame-pointer -fomit-frame-pointer
-ftracer -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf"
CXXFLAGS="-O3 -march=pentium3 -momit-leaf-frame-pointer -fomit-frame-pointer
-ftracer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks metadata-transfer parallel-fetch sandbox sfperms
strict userpriv usersandbox"
GENTOO_MIRRORS="http://files.gentoo.org
http://mirror.pacific.net.au/linux/Gentoo ftp://ftp.ndlug.nd.edu/pub/gentoo/
http://212.219.56.133/sites/www.ibiblio.org/gentoo/
ftp://212.219.56.133/sites/www.ibiblio.org/gentoo/"
LINGUAS="en"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress
--force --whole-file --delete --delete-after --stats --timeout=180
--exclude='/distfiles' --exclude='/local' --exclude='/packages'"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage /usr/local/initng-portage"
SYNC="rsync://rsync.fr.gentoo.org/gentoo-portage"
USE="x86 X a52 aac alsa apache2 apm avi bash-completion berkdb bitmap-fonts
bzip2 cli crypt cups directfb dlloader dri dvd emboss encode exif faad2 fam
fbcon ffmpeg flac foomaticdb fortran gdbm gif gimp gnome gpm gstreamer gtk gtk2
hal imlib isdnlog jpeg jpg kdeenablefinal lcms libg++ libwww live mad mikmod
mmxext motif mozilla mp3 mpeg mysql mythtv ncurses network nls nptl ogg opengl
oss pam pcre pdflib perl png postgres ppds pppd python qt3 qt4 quicktime
readline real reflection sdl session spell spl sqlite ssl svga tcltk tcpd tiff
truetype truetype-fonts type1-fonts udev unicode usb v4l vorbis win32codecs xml
xml2 xmms xorg xv zlib elibc_glibc initng_plugins_also
initng_plugins_bash_launcher initng_plugins_chdir initng_plugins_chroot
initng_plugins_conflict initng_plugins_cpout initng_plugins_critical
initng_plugins_cron initng_plugins_daemon initng_plugins_dev
initng_plugins_dllaunch initng_plugins_envparser initng_plugins_find
initng_plugins_fstat initng_plugins_history initng_plugins_idleprobe
initng_plugins_initctl initng_plugins_interactive initng_plugins_iparser
initng_plugins_last initng_plugins_limit initng_plugins_logfile
initng_plugins_netprobe initng_plugins_ngc4 initng_plugins_pause
initng_plugins_pidfile initng_plugins_reload initng_plugins_renice
initng_plugins_rlparser initng_plugins_simple_launcher initng_plugins_stcmd
initng_plugins_stdout initng_plugins_suid initng_plugins_syncron
initng_plugins_syslog initng_plugins_unneeded initng_plugins_provide
input_devices_keyboard input_devices_mouse kernel_linux linguas_en userland_GNU
video_cards_mga video_cards_matrox video_cards_fbdev video_cards_vga"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS,
PORTAGE_RSYNC_EXTRA_OPTS

(note: not using initng, although installed)

Proposed solution: add "after nfsmount" to /etc/init.d/xdm eventualy with a
check in /etc/fstab if any nfs mounts are used on the system.

------- Comment #1 From Jakub Moc (RETIRED) 2006-08-14 14:01:07 0000 -------
Not a baselayout bug, blame the early start "feature" of xdm (Bug 70689).

------- Comment #2 From Donnie Berkholz 2006-08-14 14:08:08 0000 -------
Just add nfsmount to the "use" line in init.d/xdm, and let us know whether that
works.

------- Comment #3 From Paul de Vries 2006-08-15 02:14:41 0000 -------
(In reply to comment #2)
> Just add nfsmount to the "use" line in init.d/xdm, and let us know whether that
> works.
> 

no, that does not help. The relevant part of the start up log:
 * Starting metalog ...                                [ ok ] 
 * Setting up xdm ...                                  [ ok ]
 * Loading iptables state and starting firewall ...    [ ok ]
 * Starting eth0
 *   You are using a depreciated configuration syntax for eth0
 *   You are advised to read /etc/conf.d/net.example and upgrade it accordingly
 *   Bringing up eth0
 *     dhcp
 *       Running dhcpcd ...                           [ ok ]
 *       eth0 received address 192.168.0.3/24
 * Setting clock via the NTP client 'ntpdate' ...     [ ok ]
 * Starting portmap ...                               [ ok ]
 * Starting cupsd ...                                 [ ok ]
 * Mounting nfsd filesystem in /proc ...              [ ok ]
 * Starting NFS statd ...                             [ ok ]
 * Starting NFS daemon ...                            [ ok ]
 * Starting NFS mountd ...                            [ ok ]
 * Mounting network filesystems ...                   [ ok ]

so xdm is still started before nfs is mounted. 
My init.d/xdm depend:
depend() {
        need localmount

        # this should start as early as possible
        # we can't do 'before *' as that breaks it
        after bootmisc readahead-list nfsmount
        before alsasound net.lo

        # Start before X
        use acpid hald xfs
}

------- Comment #4 From Donnie Berkholz 2006-08-15 02:48:49 0000 -------
 You did notice that you added it to a line other than the one I requested?
Also, make sure the nfs service is called nfsmount, and try rerunning
/sbin/depscan.sh

------- Comment #5 From Paul de Vries 2006-08-15 03:31:04 0000 -------
(In reply to comment #4)
>  You did notice that you added it to a line other than the one I requested?
> Also, make sure the nfs service is called nfsmount, and try rerunning
> /sbin/depscan.sh

oops, I was not paying attention, my excusses. I added "netmount" and
"nfsmount" to the use line in init.d/xdm and now it works as expected. 

My service to mount network drives is called netmount, so I should not have
nfsmount as well (nfsmount is 'need' in netmount when nfs in fstab). I will
remove nfsmount and check again at the next reboot.

------- Comment #6 From Donnie Berkholz 2006-08-20 12:11:30 0000 -------
Fixed in CVS, sync in an hour and re-merge to get the fix.

------- Comment #7 From Ian Stakenvicius 2006-09-08 07:32:59 0000 -------
Problem -- this breaks ppl that use rc_parallel_startup=no because for some
reason 'after netmount' takes precedence over netmounts 'need net' and so
netmount fails.

To me it seems to be related to the 'before net.lo' dependency however -- why
is that there (given net.lo and alsasound should start in boot and xdm should
start in default)

------- Comment #8 From Donnie Berkholz 2006-09-08 10:05:34 0000 -------
(In reply to comment #7)
> To me it seems to be related to the 'before net.lo' dependency however -- why
> is that there (given net.lo and alsasound should start in boot and xdm should
> start in default)

If you want xdm to start early, you put it in boot.

------- Comment #9 From Ian Stakenvicius 2006-09-08 10:41:15 0000 -------
..ok, but that shouldn't break netmount if xdm is in default -- and also, i can
see this causing issues when xdm is in boot now too (will play around).. if xdm
is in boot it should still work fine w/o the before depend..

netmount needs net, which need at least net.lo (usually more).  if xdm is after
netmount, it cannot be before net.lo

one or the other has to go, and i vote for net.lo as that doesnt seem to be a
functional dependency.

------- Comment #10 From Jakub Moc (RETIRED) 2006-10-06 10:00:49 0000 -------
*** Bug 150253 has been marked as a duplicate of this bug. ***