If I create a file on an nfs-mounted filesystem on one machine, the file may not be immediately visible to another machine looking at the same nfs-mounted filesystem.
In our case this happened with a compute farm environment, where a job was dispatched to a remote machine to write some file, then when that job finished the dispatching machine tried immediately read that file. This would regularly fail and the immediate work-around was a sleep(10)
step in between the dispatched-job-finish and the subsequent read-the-created-file step.
$ man nfs
This option dictates how directories and files should be cached when they are
accessed -- i.e. "looked up" -- on the server. A lookup can be either positive
(directory/file was found) or negative (directory/file was not found); both types
of lookups can be cached. By default, both positive and negative lookups are cached ( lookupcache=all ).
lookupcache=pos prevents negative lookups from being cached, while lookupcache=none
prevents all lookups from being cached. Note: lookupcache=none can adversely affect performance, but may be necessary if
shared files created or deleted on the server need to be immediately visible to any
applications running on NFS clients.
I added the option lookupcache=pos
to the automount options for this filesystem and the problem went away.
This appears to be added for the RedHat/CentOS 5.4 release cycle
and should be available in those or later releases.