"rfs_read: read from nonfile" (or whatever...)

Louis Marco wrat at unisql.UUCP
Thu Jun 13 08:07:06 AEST 1991


	To recap:  I have a 386 box running Interactive's SYSV port.  Most
of its files actually exist on a local Sun fileserver, and the 386 mounts 
them via NFS.  When someone runs "make" or certain other programs in such a
way as to run an executable on the 386 that uses datafiles on the Sun the
Sun's console fills up with "rfs_read: attempt to read from non-file" 
messages, and nfsd on the server thrashes until the offending process on the
386 dies/is killed.

	The problem is Interactive's broken C-shell, which is using read()
on directories.  This manifests by the shell suddenly dying when you execute

$ setenv PATH /usr/local/remote-fs:$PATH

	where remote-fs is something mounted via NFS. The shell checks its
path, the read on the remote dir fails and the shell simply exits.  (This
particular manifestation causes users on my system to lock themselves
out of their accounts when they add /usr/local/bin to their paths in .cshrc,
since usr/local is on the Sun...).  Something like "make", which
starts lots and lots of shells, will bring the whole LAN to its
knees...

	The workaround is: don't use the broken C-shell.  Use Bourne shell,
or tcsh, or whatever.  This will cure most of the problem, but some other
stuff (rm?) is still using read because we still get an occasional rfs_read
error.  We *can* now set correct paths and run builds without copying 
everything to a local disc.

			"You can't go back and you can't stand still,
			 if the thunder don't get you then the lightenin' will"



More information about the Comp.unix.sysv386 mailing list