/bin/login hangs if an NFS server down?

Jim Reid jim at cs.strath.ac.uk
Mon Oct 8 07:30:00 AEST 1990


In article <1990Aug29.231300.10232 at rice.edu> dank at moc.jpl.nasa.gov (Dan Kegel) writes:

|We run Solbourne's SunOS 4.0.1, without quotas.  Whenever an NFS server on
|my network is down, logins seem to take forever even if the filesystem
|provided by the server has nothing to do with the user who is logging in.

|Does anybody know what the heck /bin/login is doing in that child process
|that takes 1'16" to terminate?  Is it secretly doing a df?

No.

When login forks and execs /bin/csh, csh does a getwd() to determine its
current working directory. This involves getting the name and inode number
of every file in the parent directory. Comparing the inode number for '.'
(the current directory) with each name/inode number pair in the parent
directory gives the filename of the current directory. This procedure is
executed in successive parent directories (building the pathname as it
goes along) until it hits '/' where the inode numbers  for '.' and '..'
are the same.

Now to get the inode number for an NFS mount point, the kernel has to make
a request to the NFS server. If the server is down and the filesystem hard
mounted, the kernel will wait forever for a reply to the NFS request it
made. I suppose that there must be a mount point for a dead NFS server
somewhere in one of the directories between the users home directory and
'/'.

		Jim



More information about the Comp.sys.sun mailing list