Re: rpc.lockd spinning; much breakage

From: Robert Watson <rwatson_at_FreeBSD.org>
Date: Tue, 13 May 2003 12:56:04 -0400 (EDT)
On Tue, 13 May 2003, Andrew P. Lentvorski, Jr. wrote:

> On Mon, 12 May 2003, Robert Watson wrote:
> 
> > (3) Sometimes rpc.lockd on 5.x acting as a server gets really confused
> >     when you mix local and remote locks.
> 
> Yes, don't do that. ;) 

Unfortunately, a common case I'm interested in is "mail spool on a mail
server is NFS-exported to many clients", which bumps into locking between
the client and server pretty quickly :-).

> One problem is that FreeBSD doesn't allocate enough fields in its local
> lock structure to distinguish external identifiers in the locks (all
> locks look like they are owned by the rpc.lockd user).  Consequently,
> rpc.lockd has to maintain its own state as to who has what locks.

If this isn't a user/kernel ABI/API problem, it should be easily solvable,
and we should do that following 5.1-RELEASE.

> I believe there were also some issues with atomicity in POSIX partial
> file locking on FreeBSD that have since been fixed. 
> 
> Consequently, I punted when I wrote the rpc.lockd code to support POSIX
> partial file locking.  The server rpc.lockd locks the *entire file* when
> it gets an NFS request to lock any portion of it.  In addition, it will
> return an immediate fail if the kernel has any portion of the desired
> file locked. 

This sounds like a reasonable work-around given that the common case is
currently whole-file locking; we just need to make sure that the semantics
are exposed properly to the application.

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert_at_fledge.watson.org      Network Associates Laboratories
Received on Tue May 13 2003 - 07:56:15 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:07 UTC