In NFS v3 and under, the server doesn't track opened files.  If you unlink(2) or rename(2) a file held open by another process *on the same host*, that host's kernel typically renames the file to .nfsXXXX and automatically deletes that when it's no longer open, but this behavior is not required.
In NFS v3 and under, the server doesn't track opened files.  If you
unlink(2) or rename(2) a file held open by another process *on the
same host*, that host's kernel typically renames the file to .nfsXXXX
and automatically deletes that when it's no longer open, but this
behavior is not required.

For obvious reasons, this does not work *across hosts*.  No one
knows about the opened file; not the server, and not the deleting
client.  So the file vanishes, and the reader gets stale NFS file
handle.  We have this problem with revprops/* and current.

* subversion/libsvn_fs_fs/fs_fs.c
  (SVN_ESTALE_RETRY_COUNT, SVN_RETRY_ESTALE, SVN_IGNORE_ESTALE): New
  macros for retrying opens and reads after ESTALE, and ignoring
  ESTALE errors from close, within a loop of SVN_ESTALE_RETRY_COUNT
  (10) iterations.  SVN_RETRY_ESTALE and SVN_IGNORE_ESTALE are defined
  as SVN_ERR when ESTALE is not defined.

  (read_current): New function for reading the current file using the
  ESTALE macros.

  (get_youngest, get_next_revision_ids): Use read_current.

  (svn_fs_fs__revision_proplist): Use the ESTALE macros.

jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion