Install from NFS onto NFS fails on amd64

Jilles Tjoelker jilles at stack.nl
Thu Jul 2 21:25:07 UTC 2009


On Thu, Jul 02, 2009 at 12:31:16PM +0000, Bjoern A. Zeeb wrote:
> On Thu, 2 Jul 2009, Bjoern A. Zeeb wrote:
> > trying to installworld from NFS to NFS (which also is the NFS Root
> > of the installing and to be updated machien) on amd64 always fails
> > with this error.  Anyone knows why that is?

> > ------------------------------------------------------------------------
> > lion1# make installworld -DNO_FSCHG
> > ...
> > ...
> > ...
> > install -s -o root -g wheel -m 555   ldd32 /usr/bin
> > rm: /tmp/install.uMl44I7W: Directory not empty
> > *** Error code 1
> >
> > Stop in /zoo/bz/HEAD.svn.
> > *** Error code 1
> >
> > Stop in /zoo/bz/HEAD.svn.
> > lion1# 
> > ------------------------------------------------------------------------

> I probably should have added that the directory is empty:

> lion1# ls -la  /tmp/install.uMl44I7W
> total 4
> drwxr-xr-x   2 root  wheel  1024 Jul  2 12:15 .
> drwxrwxrwt  15 root  wheel  1024 Jul  2 12:10 ..

> and I am well aware that that is one of the last things that make
> installworld does; it's just strange and I blame it on NFS;-)

This could be because of NFS "sillyrename". To avoid some ESTALE errors,
the NFS client (for NFSv2 and NFSv3 at least) renames if you delete a
file that is currently in use (in this case, the rm binary). Because the
renamed file (name typically starts with .nfs) is in the same directory,
this causes problems when removing directories. Once the file is no
longer in use, it is finally deleted.

Without sillyrename, rm could segfault after deleting itself.

Maybe NFSv4 has a cleaner way to keep a file with 0 links as long as it
is open.

-- 
Jilles Tjoelker


More information about the freebsd-current mailing list