From: Christoph Hellwig <hch@infradead.org>
To: Bryan Schumaker <bjschuma@netapp.com>
Cc: Christoph Hellwig <hch@infradead.org>,
Justin Piszcz <jpiszcz@lucidpixels.com>,
"J. Bruce Fields" <bfields@fieldses.org>,
linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org,
xfs@oss.sgi.com
Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop
Date: Wed, 27 Jul 2011 16:05:50 -0400 [thread overview]
Message-ID: <20110727200550.GA23416@infradead.org> (raw)
In-Reply-To: <20110727200240.GA16054@infradead.org>
On Wed, Jul 27, 2011 at 04:02:40PM -0400, Christoph Hellwig wrote:
> But looking closer at it it only prints the directory name and not that
> of any of the matching cookies, making it pretty useless to debug any
> problem. (and it makes my previous question to Justin look stupid..).
>
>
> But so far I still stick to my previous theory that this sounds like
> a directory offset getting reused. How is cache invalidation for
> the array supposed to work? And maybe more importantly, given that he
> can only reproduce it with a .38 client did any bugs get fixed in that
> code recently that might lead to issues with the cache invalidation?
Actually we won't even need cache invalidation bugs, see
nfsd_buffered_readdir() - we might do multiple vfs_readdir calls to
fill a single nfs reply, and between these two directory contents might
have been completely replaced, in the worst (pathological case) you
might get a second readdir having exactly the same offsets, but pointing
to completely different inodes.
WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@infradead.org>
To: Bryan Schumaker <bjschuma@netapp.com>
Cc: "J. Bruce Fields" <bfields@fieldses.org>,
linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org,
xfs@oss.sgi.com, Christoph Hellwig <hch@infradead.org>,
Justin Piszcz <jpiszcz@lucidpixels.com>
Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop
Date: Wed, 27 Jul 2011 16:05:50 -0400 [thread overview]
Message-ID: <20110727200550.GA23416@infradead.org> (raw)
In-Reply-To: <20110727200240.GA16054@infradead.org>
On Wed, Jul 27, 2011 at 04:02:40PM -0400, Christoph Hellwig wrote:
> But looking closer at it it only prints the directory name and not that
> of any of the matching cookies, making it pretty useless to debug any
> problem. (and it makes my previous question to Justin look stupid..).
>
>
> But so far I still stick to my previous theory that this sounds like
> a directory offset getting reused. How is cache invalidation for
> the array supposed to work? And maybe more importantly, given that he
> can only reproduce it with a .38 client did any bugs get fixed in that
> code recently that might lead to issues with the cache invalidation?
Actually we won't even need cache invalidation bugs, see
nfsd_buffered_readdir() - we might do multiple vfs_readdir calls to
fill a single nfs reply, and between these two directory contents might
have been completely replaced, in the worst (pathological case) you
might get a second readdir having exactly the same offsets, but pointing
to completely different inodes.
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2011-07-27 20:05 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-27 13:54 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Justin Piszcz
2011-07-27 16:07 ` J. Bruce Fields
2011-07-27 16:28 ` Justin Piszcz
2011-07-27 16:28 ` Justin Piszcz
2011-07-27 16:40 ` Bryan Schumaker
2011-07-27 16:40 ` Bryan Schumaker
2011-07-27 17:00 ` Ruediger Meier
2011-07-27 17:00 ` Ruediger Meier
2011-07-27 17:09 ` Bryan Schumaker
2011-07-27 17:09 ` Bryan Schumaker
2011-07-27 17:17 ` Justin Piszcz
2011-07-27 17:17 ` Justin Piszcz
2011-07-27 17:45 ` J. Bruce Fields
2011-07-27 17:45 ` J. Bruce Fields
2011-07-27 18:28 ` Bryan Schumaker
2011-07-27 18:28 ` Bryan Schumaker
2011-07-27 17:15 ` Justin Piszcz
2011-07-27 17:15 ` Justin Piszcz
2011-07-27 18:11 ` Christoph Hellwig
2011-07-27 18:11 ` Christoph Hellwig
2011-07-27 19:35 ` Justin Piszcz
2011-07-27 19:35 ` Justin Piszcz
2011-07-27 19:39 ` Christoph Hellwig
2011-07-27 19:39 ` Christoph Hellwig
2011-07-27 19:44 ` Justin Piszcz
2011-07-27 19:44 ` Justin Piszcz
2011-07-27 19:47 ` Christoph Hellwig
2011-07-27 19:47 ` Christoph Hellwig
2011-07-27 19:54 ` Bryan Schumaker
2011-07-27 19:54 ` Bryan Schumaker
2011-07-27 20:02 ` Christoph Hellwig
2011-07-27 20:02 ` Christoph Hellwig
2011-07-27 20:05 ` Christoph Hellwig [this message]
2011-07-27 20:05 ` Christoph Hellwig
2011-07-27 20:26 ` Rüdiger Meier
2011-07-27 20:26 ` Rüdiger Meier
2011-07-27 20:47 ` Christoph Hellwig
2011-07-27 20:47 ` Christoph Hellwig
2011-07-27 21:21 ` Rüdiger Meier
2011-07-27 21:21 ` Rüdiger Meier
2011-07-27 19:57 ` Justin Piszcz
2011-07-27 19:57 ` Justin Piszcz
2011-07-27 20:37 ` Trond Myklebust
2011-07-27 20:37 ` Trond Myklebust
2011-07-27 20:54 ` Trond Myklebust
2011-07-27 20:54 ` Trond Myklebust
2011-07-27 20:54 ` Trond Myklebust
2011-07-27 20:56 ` Trond Myklebust
2011-07-27 20:56 ` Trond Myklebust
2011-07-27 20:56 ` Trond Myklebust
[not found] ` <1311800195.25645.45.camel-SyLVLa/KEI9HwK5hSS5vWB2eb7JE58TQ@public.gmane.org>
2011-07-27 21:24 ` Justin Piszcz
2011-07-27 21:24 ` Justin Piszcz
2011-07-27 21:24 ` Justin Piszcz
[not found] ` <alpine.DEB.2.02.1107271723500.25432-0qmrozcXWo8bm2hyYBkBBg@public.gmane.org>
2011-07-27 22:44 ` Justin Piszcz
2011-07-27 22:44 ` Justin Piszcz
2011-07-27 22:44 ` Justin Piszcz
2011-07-28 20:48 ` Trond Myklebust
2011-07-28 20:48 ` Trond Myklebust
2011-07-28 20:48 ` Trond Myklebust
2011-07-29 20:52 ` Bryan Schumaker
2011-07-29 20:52 ` Bryan Schumaker
2011-07-29 20:59 ` Justin Piszcz
2011-07-29 20:59 ` Justin Piszcz
2011-07-29 22:03 ` Trond Myklebust
2011-07-29 22:03 ` Trond Myklebust
2011-07-29 22:23 ` Justin Piszcz
2011-07-29 22:23 ` Justin Piszcz
2011-07-30 9:58 ` Justin Piszcz
2011-07-30 9:58 ` Justin Piszcz
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=20110727200550.GA23416@infradead.org \
--to=hch@infradead.org \
--cc=bfields@fieldses.org \
--cc=bjschuma@netapp.com \
--cc=jpiszcz@lucidpixels.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=xfs@oss.sgi.com \
/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.