linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Steve Dickson <SteveD-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	miklos-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org,
	viro-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.org,
	hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org,
	michael.brantley-Iq/kdjr4a97QT0dZR+AlfA@public.gmane.org,
	sven.breuner-mPn0NPGs4xGatNDF+KUbs4QuADTiUCJX@public.gmane.org,
	chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org,
	pstaubach-83r9SdEf25FBDgjK7y7TUQ@public.gmane.org,
	malahal-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org,
	bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org,
	trond.myklebust-41N18TsMXrtuMpJDpNschA@public.gmane.org,
	rees-63aXycvo3TyHXe+LvDLADg@public.gmane.org
Subject: Re: [PATCH RFC v3] vfs: make fstatat retry once on ESTALE errors from getattr call
Date: Fri, 20 Apr 2012 17:13:00 -0400	[thread overview]
Message-ID: <20120420171300.326d6e36@corrin.poochiereds.net> (raw)
In-Reply-To: <4F91C49D.8070908-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>

On Fri, 20 Apr 2012 16:18:37 -0400
Steve Dickson <SteveD-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:

> On 04/20/2012 10:40 AM, Jeff Layton wrote:
> > I guess the questions at this point is:
> > 
> > 1) How representative is Peter's mkdir_test() of a real-world workload?
> Reading your email I had to wonder the same thing... What application 
> removes hierarchy of directories in a loop from two different clients?
> I would suspect not many, if any... esp over NFS... 
>  

Peter's test just happens to demonstrate the problem well, but one
could envision someone removing a heirarchy of directories on the
server while we're trying to do other operations in it. At that point,
we can easily end up hitting an ESTALE twice while doing the lookup and
returning ESTALE back to userspace.

> > 
> > 2) if we assume that it is fairly representative of one, how can we
> > achieve retrying indefinitely with NFS, or at least some large finite
> > amount?
> The amount of looping would be peer speculation. If the problem can
> not be handled by one simple retry I would say we simply pass the
> error up to the app... Its an application issue... 
>  

It's not an application issue. The application just asked the kernel
to do an operation on a pathname. The only reason you're getting an
ESTALE back in this situation is a shortcoming of the implementation.

We passed it a pathname after all, not a filehandle. ESTALE really has
no place as a return code in that situation...

> > 
> > I have my doubts as to whether it would really be as big a problem for
> > other filesystems as Miklos and others have asserted, but I'll take
> > their word for it at the moment. What's the best way to contain this
> > behavior to just those filesystems that want to retry indefinitely when
> > they get an ESTALE? Would we need to go with an entirely new
> > ESTALERETRY after all?
> > 
> Introducing a new errno to handle this problem would be overkill IMHO...
> 
> If we have to go to the looping approach, I would strong suggest we
> make the file systems register for this type of behavior...
> 

Returning ESTALERETRY would be registering for it in a way and it is
somewhat cleaner than having to go all the way back up to the fstype to
figure out whether you want to retry it or not.

There's also the non-trivial matter of needing to retry during the
lookup itself. If the lookup just returns ESTALE, then you don't have
any way to know whether the underlying fs wanted you to retry it or
not...

I'm not thrilled with having to do all of this ESTALE to ESTALERETRY
conversion and back, but it does give us a way to neatly deal with and
ESTALE during the lookup.

-- 
Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2012-04-20 21:13 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-13 11:25 [PATCH RFC] vfs: make fstatat retry on ESTALE errors from getattr call Jeff Layton
     [not found] ` <1334316311-22331-1-git-send-email-jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-04-13 12:02   ` Jim Rees
     [not found]     ` <20120413120232.GA27179-63aXycvo3TyHXe+LvDLADg@public.gmane.org>
2012-04-13 12:09       ` Jeff Layton
2012-04-18 11:52   ` [PATCH RFC v3] vfs: make fstatat retry once " Jeff Layton
2012-04-20 14:40     ` Jeff Layton
     [not found]       ` <20120420104055.511e15bc-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-04-20 20:18         ` Steve Dickson
     [not found]           ` <4F91C49D.8070908-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
2012-04-20 20:37             ` Malahal Naineni
2012-04-20 21:13               ` Jeff Layton
2012-04-22  5:40                 ` Miklos Szeredi
     [not found]                   ` <CAJfpegt40cgMJQQo3JuNaaS1w957Y2a_NxVoyvx3bmTMj1TGOA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-04-23 12:00                     ` Jeff Layton
     [not found]                       ` <20120423080012.7c23ef24-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-04-23 13:00                         ` J. Bruce Fields
     [not found]                           ` <20120423130009.GA13681-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2012-04-23 13:12                             ` Jeff Layton
     [not found]                               ` <20120423091255.00f926c4-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-04-23 13:34                                 ` J. Bruce Fields
     [not found]                                   ` <20120423133412.GB13681-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2012-04-23 13:50                                     ` Jeff Layton
2012-04-23 13:54                                       ` J. Bruce Fields
2012-04-23 14:51                                         ` Miklos Szeredi
     [not found]                                           ` <87hawasdrb.fsf-d8RdFUjzFsbxNFs70CDYszOMxtEWgIxa@public.gmane.org>
2012-04-23 15:02                                             ` Chuck Lever
2012-04-23 15:23                                               ` Miklos Szeredi
2012-04-23 17:45                                                 ` Peter Staubach
2012-04-23 15:16                                             ` Jeff Layton
2012-04-23 15:28                                               ` Miklos Szeredi
2012-04-23 18:59                                                 ` Jeff Layton
2012-04-20 21:13             ` Jeff Layton [this message]
     [not found]               ` <20120420171300.326d6e36-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2012-04-23 14:55                 ` Steve Dickson
     [not found]                   ` <4F956D5C.5050801-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
2012-04-23 15:32                     ` Jeff Layton
     [not found]                       ` <20120423113216.01992555-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-04-23 18:06                         ` Steve Dickson
2012-04-23 18:33                           ` Jeff Layton
     [not found]                           ` <4F959A36.2080402-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
2012-04-23 20:38                             ` Peter Staubach
2012-04-24 14:50                               ` Jeff Layton
     [not found]                                 ` <20120424105049.5ed96b40-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-04-24 15:54                                   ` Miklos Szeredi
2012-04-24 16:34                                     ` Jeff Layton
     [not found]                                       ` <20120424123413.17625d5d-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-04-25  9:41                                         ` Miklos Szeredi
     [not found]                                           ` <87bomgkv1b.fsf-d8RdFUjzFsbxNFs70CDYszOMxtEWgIxa@public.gmane.org>
2012-04-25 12:04                                             ` Jeff Layton
2012-04-23 17:43                     ` Peter Staubach
2012-04-23 19:06                     ` Malahal Naineni
2012-04-22  4:16         ` Ric Wheeler
2012-04-23 11:20           ` Jeff Layton
     [not found] ` <20120413150518.GA1987@us.ibm.com>
2012-04-13 15:42   ` [PATCH RFC] vfs: make fstatat retry " Jeff Layton
2012-04-13 16:07     ` Steve Dickson
     [not found]       ` <4F884F32.7010402-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
2012-04-13 17:10         ` Jeff Layton
2012-04-13 17:34         ` Peter Staubach
     [not found]           ` <2F609A9B-B44B-4CEA-BF35-D6BEDA729363-83r9SdEf25FBDgjK7y7TUQ@public.gmane.org>
2012-04-13 23:00             ` Jeff Layton
2012-04-14  0:57           ` Trond Myklebust
2012-04-15 19:03     ` Bernd Schubert
     [not found]       ` <4F8B1B7B.3040304-mPn0NPGs4xGatNDF+KUbs4QuADTiUCJX@public.gmane.org>
2012-04-15 19:27         ` J. Bruce Fields
2012-04-16 14:23           ` Bernd Schubert
2012-04-15 19:57         ` Chuck Lever
2012-04-16 11:23           ` Jeff Layton
2012-04-17 11:53           ` Steve Dickson
2012-04-16 11:36         ` Jeff Layton
     [not found]           ` <20120416073655.7cdb90cf-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2012-04-16 12:54             ` Peter Staubach
2012-04-16 16:04               ` Jeff Layton
2012-04-16 14:44           ` Bernd Schubert
     [not found]             ` <4F8C3036.2030702-mPn0NPGs4xGatNDF+KUbs4QuADTiUCJX@public.gmane.org>
2012-04-16 17:46               ` Jeff Layton
2012-04-16 19:33                 ` Myklebust, Trond
2012-04-16 19:43                   ` Jeff Layton
2012-04-16 20:25                     ` Myklebust, Trond
2012-04-16 23:05                       ` Jeff Layton
     [not found]                         ` <20120416190548.2463d1d0-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2012-04-17 11:46                           ` Steve Dickson
     [not found]                             ` <4F8D580B.7060104-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
2012-04-17 13:36                               ` Jeff Layton
     [not found]                                 ` <20120417093643.7f172057-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2012-04-17 14:14                                   ` Steve Dickson
2012-04-17 14:27                                     ` Miklos Szeredi
2012-04-17 15:02                                       ` Jeff Layton
     [not found]                                         ` <20120417110219.0db9bdee-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2012-04-17 15:50                                           ` Miklos Szeredi
     [not found]                                             ` <87aa2anys1.fsf-d8RdFUjzFsbxNFs70CDYszOMxtEWgIxa@public.gmane.org>
2012-04-17 16:03                                               ` Jeff Layton
2012-04-17 15:59                                           ` Steve Dickson
2012-04-17 13:12                         ` Miklos Szeredi
2012-04-17 13:32                           ` Jeff Layton
2012-04-17 14:03                             ` Miklos Szeredi
     [not found]                               ` <87obqqo3qd.fsf-d8RdFUjzFsbxNFs70CDYszOMxtEWgIxa@public.gmane.org>
2012-04-17 14:22                                 ` Jeff Layton
     [not found]                             ` <20120417093222.2ff5e1bd-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2012-04-17 14:04                               ` Myklebust, Trond
2012-04-17 14:20                                 ` Jeff Layton
     [not found]                                   ` <20120417102035.2236e553-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2012-04-17 15:45                                     ` J. Bruce Fields
     [not found]                                       ` <20120417154549.GA27426-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2012-04-17 16:02                                         ` Miklos Szeredi
2012-04-17 13:39                         ` Peter Staubach
2012-04-17 14:08                           ` Myklebust, Trond
     [not found]                             ` <1334671736.2963.30.camel-SyLVLa/KEI9HwK5hSS5vWJi5GlFTYi68DQmRywkZCB4@public.gmane.org>
2012-04-17 14:48                               ` Peter Staubach
     [not found]                                 ` <FA8A9A935BFD3A4D8F0CDA1C4F611BCC063CF8E132-0qHjP65cd0bRCIvD65MY1w@public.gmane.org>
2012-04-18 15:16                                   ` Jeff Layton
     [not found]                 ` <20120416134642.1754cd3e-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2012-04-16 19:43                   ` Scott Lovenberg
2012-04-16 16:55 ` [PATCH RFC v2] " Jeff Layton

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=20120420171300.326d6e36@corrin.poochiereds.net \
    --to=jlayton-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=SteveD-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org \
    --cc=chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
    --cc=hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
    --cc=linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=malahal-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
    --cc=michael.brantley-Iq/kdjr4a97QT0dZR+AlfA@public.gmane.org \
    --cc=miklos-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org \
    --cc=pstaubach-83r9SdEf25FBDgjK7y7TUQ@public.gmane.org \
    --cc=rees-63aXycvo3TyHXe+LvDLADg@public.gmane.org \
    --cc=sven.breuner-mPn0NPGs4xGatNDF+KUbs4QuADTiUCJX@public.gmane.org \
    --cc=trond.myklebust-41N18TsMXrtuMpJDpNschA@public.gmane.org \
    --cc=viro-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).