Re: installworld broken - osreldate.h: permission denied

From: Ian Lepore <ian_at_FreeBSD.org>
Date: Mon, 30 Sep 2013 11:54:12 -0600
On Mon, 2013-09-30 at 19:02 +0200, Jilles Tjoelker wrote:
> On Sun, Sep 29, 2013 at 10:13:29AM +0200, Joel Dahl wrote:
> > On Sat, Sep 28, 2013 at 11:19:51AM -0600, Ian Lepore wrote:
> > > On Sat, 2013-09-28 at 15:09 +0200, Joel Dahl wrote:
> > > > Fresh HEAD. installworld from read-only /usr/obj and /usr/src:
> 
> > > > /usr/src/include/iconv.h osreldate.h /usr/include
> > > > install: osreldate.h: Permission denied
> > > > *** Error code 71
> 
> > > > Stop.
> > > > make[4]: stopped in /usr/src/include
> > > > *** Error code 1
> 
> > > > Everything was working fine 2 weeks ago, so it's a recent breakage.
> 
> > > Okay, I just accidentally created conditions for this error on my
> > > system...  I checked in a change to newvers.sh while a buildworld was
> > > running, which led to a situation where newvers.sh was newer than
> > > osreldate.h at the end of the buildworld.  Then an installworld tried to
> > > regenerate osreldate.h due to its dependency on newvers.sh, which would
> > > fail if the obj was readonly at that point.
> 
> > > I think we could see if something similar applies for you if you use
> > > this command:
> 
> > >   make -dm installworld SUBDIR_OVERRIDE=include
> 
> > I tried this with a fresh HEAD but the error message is still the same.
> 
> > /usr/src and /usr/obj are NFS mounted, FYI.
> 
> I had the same problem as Joel. It has nothing to do with timestamps,
> but with the default -maproot -2:-2. The include/mk-osreldate.sh script
> creates osreldate.h from mktemp(1), so with mode 600. The squashed root
> (nobody) is then not allowed to read it.
> 
> The below patch should fix it.
> 
> Index: include/mk-osreldate.sh
> ===================================================================
> --- include/mk-osreldate.sh	(revision 255946)
> +++ include/mk-osreldate.sh	(working copy)
> _at__at_ -48,4 +48,5 _at__at_
>  #define __FreeBSD_version $RELDATE
>  #endif
>  EOF
> +chmod 644 $tmpfile
>  mv $tmpfile osreldate.h
> 

Thank you Jilles.  I was never that fond of the timestamp theory, it was
just the only one I could come up without any data.  I think I was
unable to reproduce the problem because all my in-house nfs shares use
-maproot 0.

Joel, please test Jilles' patch, and I'll get the ball rolling for
approval to commit it.

-- Ian
Received on Mon Sep 30 2013 - 15:54:16 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:42 UTC