From: Trond Myklebust <Trond.Myklebust@netapp.com>
To: "Rüdiger Meier" <sweet_f_a@gmx.de>
Cc: linux-nfs@vger.kernel.org
Subject: Re: infinite getdents64 loop
Date: Sun, 29 May 2011 13:04:03 -0400 [thread overview]
Message-ID: <1306688643.2386.24.camel@lade.trondhjem.org> (raw)
In-Reply-To: <201105291855.04487.sweet_f_a@gmx.de>
On Sun, 2011-05-29 at 18:55 +0200, Rüdiger Meier wrote:
> On Sunday 29 May 2011, Trond Myklebust wrote:
>
> > Sorry, but that patch makes absolutely no sense whatsoever as a fix
> > for the problem you describe.
>
> It wasn't ment to be a real fix. I just tried to find out where the prob
> is roughly located.
>
> > All you are doing is changing the size
> > of the readdir cache entry, which is probably causing a READDIR with
> > a duplicate cookie to trigger.
>
> Yup, my patch "repaired" the test directory and let another one fail.
> Currently Ive reverted
> commit d1bacf9e, NFS: add readdir cache array
> (and a lot followups) to let clients work again.
>
> > When running with the stock 2.6.39
> > client, do you see the "directory contains a readdir loop." message
> > in your syslog?
>
> Yes, didn't noticed that because I've booted 2.6.39 only a few times.
> There are a lot like this:
> May 25 13:26:09 kubera-114 kernel: [ 1105.419604] NFS: directory
> gen/radar contains a readdir loop. Please contact your server vendor.
> Offending cookie: 947700512
>
> I hope it's not my server vendor's fault :)
> Or does this mean the NFS server is bad rather than the client?
It's actually a problem with the underlying filesystem: it is generating
readdir 'offsets' that are not unique. In other words, if you use
telldir() to list out the offsets for each readdir entry on the server,
you will see the same value 947700512 above appear at least two times,
which means that 'seekdir()' is also broken, for instance.
IOW: This isn't something that we can fix on the NFS client. It needs to
be fixed on the server. The only thing that has hidden the problem
previously is blind luck (which is why your patch appeared to work).
Cheers
Trond
--
Trond Myklebust
Linux NFS client maintainer
NetApp
Trond.Myklebust@netapp.com
www.netapp.com
next prev parent reply other threads:[~2011-05-29 17:04 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-28 13:02 infinite getdents64 loop Rüdiger Meier
2011-05-28 15:00 ` Rüdiger Meier
2011-05-29 16:05 ` Trond Myklebust
2011-05-29 16:55 ` Rüdiger Meier
2011-05-29 17:04 ` Trond Myklebust [this message]
[not found] ` <1306688643.2386.24.camel-SyLVLa/KEI9HwK5hSS5vWB2eb7JE58TQ@public.gmane.org>
2011-05-30 9:37 ` Ruediger Meier
2011-05-30 11:59 ` Jeff Layton
2011-05-30 12:42 ` Ruediger Meier
2011-05-30 14:58 ` Trond Myklebust
2011-05-31 9:47 ` Rüdiger Meier
2011-05-31 10:18 ` Bernd Schubert
2011-05-31 12:35 ` Ted Ts'o
2011-05-31 17:07 ` Bernd Schubert
2011-05-31 17:13 ` Boaz Harrosh
2011-05-31 17:30 ` Bernd Schubert
2011-06-01 13:10 ` Boaz Harrosh
2011-06-01 16:15 ` Trond Myklebust
2011-05-31 17:26 ` Andreas Dilger
2011-05-31 17:43 ` Bernd Schubert
2011-05-31 19:16 ` Andreas Dilger
2011-05-31 14:51 ` Bryan Schumaker
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=1306688643.2386.24.camel@lade.trondhjem.org \
--to=trond.myklebust@netapp.com \
--cc=linux-nfs@vger.kernel.org \
--cc=sweet_f_a@gmx.de \
/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).