All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. J. Bruce Fields" <bfields@fieldses.org>
To: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: Harry Edmon <harry@uw.edu>, Chuck Lever <chuck.lever@oracle.com>,
	linux-nfs@vger.kernel.org
Subject: Re: 2.6.38.6 - state manager constantly respawns
Date: Fri, 20 May 2011 14:59:35 -0400	[thread overview]
Message-ID: <20110520185935.GC11670@fieldses.org> (raw)
In-Reply-To: <1305916616.14253.1.camel@lade.trondhjem.org>

On Fri, May 20, 2011 at 02:36:56PM -0400, Trond Myklebust wrote:
> On Fri, 2011-05-20 at 13:52 -0400, Trond Myklebust wrote: 
> > On Fri, 2011-05-20 at 13:26 -0400, Dr. J. Bruce Fields wrote: 
> > > On Fri, May 20, 2011 at 09:20:47AM -0700, Harry Edmon wrote:
> > > > On 05/16/11 13:53, Dr. J. Bruce Fields wrote:
> > > > >Hm, so the renews all have clid 465ccc4d09000000, and the reads all have
> > > > >a stateid (0, 465ccc4dc24c0a0000000000).
> > > > >
> > > > >So the first 4 bytes matching just tells me both were handed out by the
> > > > >same server instance (so there was no server reboot in between); there's
> > > > >no way for me to tell whether they really belong to the same client.
> > > > >
> > > > >The server does assume that any stateid from the current server instance
> > > > >that no longer exists in its table is expired.  I believe that's
> > > > >correct, given a correctly functioning client, but perhaps I'm missing a
> > > > >case.
> > > > >
> > > > >--b.
> > > > I am very appreciative of the quick initial comments I receive from
> > > > all of you on my NFS problem.   I notice that there has been silence
> > > > on the problem since the 16th, so I assume that either this is a
> > > > hard bug to track down or you have been busy with higher priority
> > > > tasks.  Is there anything I can do to help develop a solution to
> > > > this problem?
> > > 
> > > Well, the only candidate explanation for the problem is that my
> > > assumption--that any time the server gets a stateid from the current
> > > boot instance that it doesn't recognize as an active stateid, it is safe
> > > for the server to return EXPIRED--is wrong.
> > > 
> > > I don't immediately see why it's wrong, and based on the silence nobody
> > > else does either, but I'm not 100% convinced I'm right either.
> > > 
> > > So one approach might be to add server code that makes a better effort
> > > to return EXPIRED only when we're sure it's a stateid from an expired
> > > client, and see if that solves your problem.
> > > 
> > > Remind me, did you have an easy way to reproduce your problem?
> > 
> > My silence is simply because I'm mystified as to how this can happen.
> > Patching for it is trivial (see below).
> > 
> > When the server tells us that our lease is expired, the normal behaviour
> > for the client is to re-establish the lease, and then proceed to recover
> > all known stateids. I don't see how we can 'miss' a stateid that then
> > needs to be recovered afterwards...
> 
> Bruce,
> 
> If the clientid expired, is it possible that the server may have handed
> out the same numerical short clientid to someone else and that explains
> why the RENEW is succeeding?

Clientid's are created from a u32 counter that's sampled only under the
state lock, so it sounds unlikely.

I think more likely would be some bug affecting the lifetime of a
stateid--e.g. if the server destroyed a lock stateid earlier than it
should in some case, then this would happen.  (Since, as I say, we
assume EXPIRED for any stateid we don't recognize.)

--b.

  reply	other threads:[~2011-05-20 18:59 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-16 18:40 2.6.38.6 - state manager constantly respawns Harry Edmon
2011-05-16 18:45 ` Chuck Lever
2011-05-16 19:12   ` Harry Edmon
2011-05-16 19:22     ` Chuck Lever
2011-05-16 19:36       ` Harry Edmon
2011-05-16 19:43         ` Trond Myklebust
2011-05-16 19:48           ` Harry Edmon
2011-05-16 19:54             ` Trond Myklebust
2011-05-16 20:20               ` Dr. J. Bruce Fields
2011-05-16 20:53                 ` Dr. J. Bruce Fields
2011-05-20 16:20                   ` Harry Edmon
2011-05-20 17:26                     ` Dr. J. Bruce Fields
2011-05-20 17:52                       ` Trond Myklebust
2011-05-20 18:36                         ` Trond Myklebust
2011-05-20 18:59                           ` Dr. J. Bruce Fields [this message]
2011-05-20 19:15                             ` Trond Myklebust
2011-05-20 19:32                               ` Dr. J. Bruce Fields
2011-05-20 18:47                         ` Dr. J. Bruce Fields
2011-05-20 18:50                           ` Bryan Schumaker
2011-05-20 19:29                         ` Harry Edmon
2011-05-20 19:39                           ` Andy Adamson
2011-05-20 19:40                           ` Trond Myklebust
2011-05-20 19:44                             ` Harry Edmon
2011-05-20 20:11                               ` Trond Myklebust
2011-05-20 20:23                                 ` Harry Edmon
2011-05-20 20:27                                   ` Trond Myklebust
2011-05-20 18:35                       ` Harry Edmon
2011-05-16 20:21           ` Chuck Lever
2011-05-16 20:33             ` Trond Myklebust
     [not found]               ` <1305578007.19725.24.camel-SyLVLa/KEI9HwK5hSS5vWB2eb7JE58TQ@public.gmane.org>
2011-05-16 20:37                 ` Harry Edmon

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=20110520185935.GC11670@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=Trond.Myklebust@netapp.com \
    --cc=chuck.lever@oracle.com \
    --cc=harry@uw.edu \
    --cc=linux-nfs@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.