Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Mar 2006 02:14:59 GMT
From:      Miguel Lopes Santos Ramos <miguel@anjos.strangled.net>
To:        kris@obsecurity.org
Cc:        kuriyama@imgsrc.co.jp, freebsd-stable@freebsd.org
Subject:   Re: rpc.lockd brokenness (2)
Message-ID:  <200603090214.k292ExSu003243@compaq.anjos.strangled.net>
In-Reply-To: <20060309020354.GA56238@xor.obsecurity.org>

next in thread | previous in thread | raw e-mail | index | archive | help
> From: Kris Kennaway <kris@obsecurity.org>
>
> The bug is triggered because the file is locked in the parent
> (i.e. the daemon process, which creates the pidfile) but unlocked by
> the child after the fork (in this case, when the child is killed).  On
> the server, rpc.lockd compares the svid (=3D pid of process on the
> client that is doing the lock call) of the lock and unlock requests,
> notices they're different and assumes that the unlock request is
> coming from some random process on the client that didn't hold the
> lock in the first place.
>
> In reality, the file descriptor was passed from parent to child by the
> fork(), and the child does actually hold the lock.

Thank you. That is a very good explanation.

> Fixing this is probably hard (also: I can't see how this could have
> ever worked with pidfile locking in cron, since it always acquired the
> lock before forking, as now.  Perhaps something else about your
> configuration changed.).

Because the lock is somehow persisting through reboots, even though I 
stop nfslocking, remove /var/db/statd.status and restart it...

> Anyway, the workaround for you is probably not to use rpc.lockd on
> your NFS mounted /var (e.g. use mount_nfs -L).  Since you don't have
> multiple machines accessing this filesystem (which wouldn't work
> anyway, as noted before), you don't need it anyway.
>
> Kris

Oh yes, I must try that again. I had problems in the past with using the -L
option, gnome didn't run. Probably it was because it was a single / filesystem
mounted on boot and the option on fstab was ignored, I must try it again.

Miguel



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200603090214.k292ExSu003243>