Re: lockf in installworld -- not a good idea

From: Ruslan Ermilov <ru_at_FreeBSD.org>
Date: Fri, 29 Sep 2006 18:08:02 +0400
On Fri, Sep 29, 2006 at 02:49:36PM +0100, Robert Watson wrote:
> 
> On Fri, 29 Sep 2006, Ruslan Ermilov wrote:
> 
> >The necessity to run rpc.lockd is documented in the build(7) manpage. 
> >Quote:
> 
> I think this is a bad idea.  rpc.lockd is one of the most fragile and 
> largely broken pieces of the operating system.  Arguably we shouldn't even 
> be shipping it.  Making it required for installworld is asking for trouble.
> 
> >: installworld     Install everything built by a preceding buildworld step
> >:                  into the directory hierarchy pointed to by make(1) vari-
> >:                  able DESTDIR.
> >:
> >:                  If installing onto an NFS file system, make sure that
> >:                  rpc.lockd(8) is running on both client and server.  See
> >:                  rc.conf(5) on how to make it start at boot time.
> >
> >>I've noticed an increasing intolerance in our tools for system install 
> >>and maintenance to locking not being implemented over the past few years. 
> >>I no longer get working cron on boxes with neither rpc.lockd nor local 
> >>locking enabled, for example.  Installworld represents a bigger problem, 
> >>since I don't want to have to depend on a completely working rpc chain in 
> >>order to installworld, nor depend on running in what would effectively be 
> >>multiuser mode.  Surely there's a better fix for this than adding lockf 
> >>use?
> >>
> >I don't know of a better fix.  Another approach is that mentioned in the 
> >commit log and used by NetBSD.  I tried it, and it was very fragile -- it 
> >could easily leave the temporary file around, and that would stuck forever 
> >another instances.
> >
> >The problem at hand is that multiple instances of install-info(1) are 
> >attempting to write to the ${DESTDIR}/usr/share/info/dir file. If you have 
> >a better idea, don't hesitate to let me know.  I'd very much like to get 
> >rid of that as well.
> 
> The basic problem here is that install-info doesn't support parallelism. 
> Sounds like we just need to accept that and therefore accept that we don't 
> support doing installworld with the -j argument.  A middle-ground solution 
> would be to only use lockf if -j is used.
> 
How could it support parallelism without using lockf(3) or equivalent?
I'd be happy to hack install-info(1) if there's a way.

A middle-ground solution was easy to implement, and I have a patch
for it if a more clean solution couldn't be found.


Cheers,
-- 
Ruslan Ermilov
ru_at_FreeBSD.org
FreeBSD committer

Received on Fri Sep 29 2006 - 12:08:06 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:00 UTC