Linux NFS development
 help / color / mirror / Atom feed
From: "J. Bruce Fields" <bfields@fieldses.org>
To: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: linux-nfs@vger.kernel.org
Subject: Re: lock reclaims outside grace period
Date: Fri, 2 May 2008 16:04:10 -0400	[thread overview]
Message-ID: <20080502200410.GF21918@fieldses.org> (raw)
In-Reply-To: <20080430000349.GA32692@fieldses.org>

On Tue, Apr 29, 2008 at 08:03:49PM -0400, bfields wrote:
> On Tue, Apr 29, 2008 at 03:18:51PM -0700, Trond Myklebust wrote:
> > 
> > On Tue, 2008-04-29 at 17:57 -0400, J. Bruce Fields wrote:
> > > Current lockd code appears to reject regular locks done during the grace
> > > period, but not reclaims that come outside of the grace period.
> > > 
> > > (That's based on inspecting the code--I haven't run tests.)
> > > 
> > > That seems like an obvious bug.  (We're not giving the client any way to
> > > determine whether conflicting locks might have been granted.)
> > > 
> > > Can we fix it, or is there a chance that people have been depending on
> > > this behavior?  (Maybe for failing over to an already-active server??)
> > 
> > Sorry, but I really don't care if anyone has been relying on it: that is
> > a _major_ bug and needs to be fixed ASAP.
> 
> OK, good, I'll do some tests to confirm and then submit a patch.

Well, I figured the easiest way to reproduce the problem would be just
by acquiring a lock on a client, then playing tricks with the network to
cause it to miss the grace period.

But I'm not getting statd to work--or at least, I'm not seeing any statd
activity on the network.  There must be something basic wrong with my
configuration, but I haven't found it yet.

--b.

> 
> When I ran across this I checked what specs I could find (mostly
> wondering which error to return), and was surprised to find no mention
> of this case.  For example, from the Open Group XNFS spec
> (http://www.opengroup.org/onlinepubs/9629799/):
> 
> 	"If "reclaim" is true, then the server will assume this is a
> 	request to re-establish a previous lock (for example, after the
> 	server has crashed and rebooted). During the grace period the
> 	server will only accept locks with "reclaim" set to true."
> 
> But they don't state the converse.
> 
> And LCK_DENIED_GRACE_PERIOD "Indicates that the procedure failed because
> the server host has recently been rebooted and the server NLM is
> re-establishing existing locks, and is not yet ready to accept normal
> service requests."  But absent an objection I suppose I'll use
> LCK_DENIED_GRACE_PERIOD for the other case too.
> 
> Anyway, it all made me worry whether ignoring the late-reclaim case was
> actually standard behavior.  It wouldn't be the only weird thing about
> NLM.
> 
> --b.

      parent reply	other threads:[~2008-05-02 20:04 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-29 21:57 lock reclaims outside grace period J. Bruce Fields
2008-04-29 22:18 ` Trond Myklebust
     [not found]   ` <1209507531.8321.11.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2008-04-30  0:03     ` J. Bruce Fields
2008-04-30  0:45       ` Wendy Cheng
2008-05-02 20:04       ` J. Bruce Fields [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080502200410.GF21918@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=trond.myklebust@fys.uio.no \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox