[comp.unix.wizards] NFS question

harish@ece-csc.UUCP (Harish Hiriyannaiah) (04/14/89)

I have had a strange NFS problem. My machine (client B) has directory /dir
remote mounted from another m/c (Server A).  Now, there is a bin directory
in /dir. If I put /dir/bin in my path I notice a problem. If A is down, and
I try to login, the login shell remains hung, presumably waiting for A to
come up so that it can set up its internal hash table. One very kludgy
solution is to have symbolic links to all the bin files in a non-remote
directory, which of course, is not the right solution. Is there a solution 
to this ? I have to state that /dir is a hard nfs mount.

--------------------------------------------------------------------------------
harish pu. hi. 			harish@ece-csc.ncsu.edu
				{back bone}!mcnc!ece-csc!harish

richard@pemrac.space.swri.edu (Richard Murphy) (02/06/90)

This problem is puzzling and perhaps some of the UNIX experts can
quickly tell me what I am doing wrong====>>>

scenario-

I have two machines, A & B that share a file system via NFS. The file
system is exported from A and mounted by B. On machine B I start a
process to display the last line written to a file that is on this
file system. On machine A I start a program to write to this same file.
What happens is this: if the file has non-zero length when the display
program opens it, all goes well. However, it is initially empty, the
display program never sees anything that the writing program puts into
it. Why does this happen? Since NFS is stateless, should not prior
knowledge of the length of the file be discarded at some point?

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Richard Murphy                             Division 15
richard@pemrac.space.swri.edu              Southwest Research Institute
...convex!pemrac!richard                   6220 Culebra Rd.
swri::richard (SPAN)                       San Antonio, TX 78228-0510

"It's not what you know, it's what you think you know."
                                          -- Steve Martin
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

mikel@teda.UUCP (Mikel Lechner) (02/07/90)

richard@pemrac.space.swri.edu (Richard Murphy) writes:

>I have two machines, A & B that share a file system via NFS. The file
>system is exported from A and mounted by B. On machine B I start a
>process to display the last line written to a file that is on this
>file system. On machine A I start a program to write to this same file.
>What happens is this: if the file has non-zero length when the display
>program opens it, all goes well. However, it is initially empty, the
>display program never sees anything that the writing program puts into
>it. Why does this happen? Since NFS is stateless, should not prior
>knowledge of the length of the file be discarded at some point?

From what you've described, it sounds like a bug in your NFS implementation.
It would help if you would give more details about what type of system
you are running and the  revision level of the software.

I had a similar problem with SunOS4.0 about a year ago.  In some circumstances
when data was written to a file that was being accessed via NFS, the
new data was not seen by other systems unless the file was closed and reopened.
We didn't do this kind of thing often, so we worked around the problem.
I noticed that when we installed SunOS4.0.3 that the problem went away.
I figured it was some bug in the NFS cacheing scheme.  There were a lot
of changes that went into the SunOS4.0 release, so it was quite buggy
until it was replaced by 4.0.1.

If you are running Suns, I would recommend upgrading to SunOS4.0.3.

-- 
				If you explain so clearly that nobody
				can misunderstand, somebody will.
Mikel Lechner
Teradyne EDA, Inc.		UUCP:  mikel@teraida.UUCP