All of lore.kernel.org
 help / color / mirror / Atom feed
From: Salvatore Bonaccorso <carnil@debian.org>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	"940821@bugs.debian.org" <940821@bugs.debian.org>,
	Linux NFS Mailing List <linux-nfs@vger.kernel.org>,
	Bruce Fields <bfields@fieldses.org>,
	trond.myklebust@hammerspace.com, anna.schumaker@netapp.com
Subject: Re: NFS Caching broken in 4.19.37
Date: Sun, 21 Feb 2021 10:13:03 +0100	[thread overview]
Message-ID: <YDIkH6yVgLoALT6x@eldamar.lan> (raw)
In-Reply-To: <BEBA9809-373A-4172-B4AD-E19D82E56DB1@oracle.com>

Hi,

On Sat, Feb 20, 2021 at 08:16:26PM +0000, Chuck Lever wrote:
> 
> 
> > On Feb 20, 2021, at 3:13 PM, Anton Ivanov <anton.ivanov@cambridgegreys.com> wrote:
> > 
> > On 20/02/2021 20:04, Salvatore Bonaccorso wrote:
> >> Hi,
> >> 
> >> On Mon, Jul 08, 2019 at 07:19:54PM +0100, Anton Ivanov wrote:
> >>> Hi list,
> >>> 
> >>> NFS caching appears broken in 4.19.37.
> >>> 
> >>> The more cores/threads the easier to reproduce. Tested with identical
> >>> results on Ryzen 1600 and 1600X.
> >>> 
> >>> 1. Mount an openwrt build tree over NFS v4
> >>> 2. Run make -j `cat /proc/cpuinfo | grep vendor | wc -l` ; make clean in a
> >>> loop
> >>> 3. Result after 3-4 iterations:
> >>> 
> >>> State on the client
> >>> 
> >>> ls -laF /var/autofs/local/src/openwrt/build_dir/target-mips_24kc_musl/linux-ar71xx_tiny/linux-4.14.125/arch/mips/include/generated/uapi/asm
> >>> 
> >>> total 8
> >>> drwxr-xr-x 2 anivanov anivanov 4096 Jul  8 11:40 ./
> >>> drwxr-xr-x 3 anivanov anivanov 4096 Jul  8 11:40 ../
> >>> 
> >>> State as seen on the server (mounted via nfs from localhost):
> >>> 
> >>> ls -laF /var/autofs/local/src/openwrt/build_dir/target-mips_24kc_musl/linux-ar71xx_tiny/linux-4.14.125/arch/mips/include/generated/uapi/asm
> >>> total 12
> >>> drwxr-xr-x 2 anivanov anivanov 4096 Jul  8 11:40 ./
> >>> drwxr-xr-x 3 anivanov anivanov 4096 Jul  8 11:40 ../
> >>> -rw-r--r-- 1 anivanov anivanov   32 Jul  8 11:40 ipcbuf.h
> >>> 
> >>> Actual state on the filesystem:
> >>> 
> >>> ls -laF /exports/work/src/openwrt/build_dir/target-mips_24kc_musl/linux-ar71xx_tiny/linux-4.14.125/arch/mips/include/generated/uapi/asm
> >>> total 12
> >>> drwxr-xr-x 2 anivanov anivanov 4096 Jul  8 11:40 ./
> >>> drwxr-xr-x 3 anivanov anivanov 4096 Jul  8 11:40 ../
> >>> -rw-r--r-- 1 anivanov anivanov   32 Jul  8 11:40 ipcbuf.h
> >>> 
> >>> So the client has quite clearly lost the plot. Telling it to drop caches and
> >>> re-reading the directory shows the file present.
> >>> 
> >>> It is possible to reproduce this using a linux kernel tree too, just takes
> >>> much more iterations - 10+ at least.
> >>> 
> >>> Both client and server run 4.19.37 from Debian buster. This is filed as
> >>> debian bug 931500. I originally thought it to be autofs related, but IMHO it
> >>> is actually something fundamentally broken in nfs caching resulting in cache
> >>> corruption.
> >> According to the reporter downstream in Debian, at
> >> https://bugs.debian.org/940821#26 thi seem still reproducible with
> >> more recent kernels than the initial reported. Is there anything Anton
> >> can provide to try to track down the issue?
> >> 
> >> Anton, can you reproduce with current stable series?
> > 
> > 100% reproducible with any kernel from 4.9 to 5.4, stable or backports. It may exist in earlier versions, but I do not have a machine with anything before 4.9 to test at present.
> 
> Confirming you are varying client-side kernels. Should the Linux
> NFS client maintainers be Cc'd?

Ok, agreed. Let's add them as well. NFS client maintainers any ideas
on how to trackle this?

> 
> > From 1-2 make clean && make  cycles to one afternoon depending on the number of machine cores. More cores/threads the faster it does it.
> > 
> > I tried playing with protocol minor versions, caching options, etc - it is still reproducible for any nfs4 settings as long as there is client side caching of metadata.
> > 
> > A.
> > 
> >> 
> >> Regards,
> >> Salvatore
> >> 
> > 
> > -- 
> > Anton R. Ivanov
> > Cambridgegreys Limited. Registered in England. Company Number 10273661
> > https://www.cambridgegreys.com/
> 
> --
> Chuck Lever

Regards,
Salvatore

  reply	other threads:[~2021-02-21  9:14 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-08 18:19 NFS Caching broken in 4.19.37 Anton Ivanov
2019-07-09  7:14 ` Fwd: " Anton Ivanov
2021-02-20 20:04 ` Salvatore Bonaccorso
2021-02-20 20:13   ` Anton Ivanov
2021-02-20 20:16     ` Chuck Lever
2021-02-21  9:13       ` Salvatore Bonaccorso [this message]
2021-02-21 11:38         ` Anton Ivanov
2021-02-21 14:37           ` Bruce Fields
2021-02-21 15:53             ` Anton Ivanov
2021-02-26 15:03               ` Timo Rothenpieler
2021-02-26 15:40                 ` Anton Ivanov
2021-02-26 15:48                   ` Timo Rothenpieler

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=YDIkH6yVgLoALT6x@eldamar.lan \
    --to=carnil@debian.org \
    --cc=940821@bugs.debian.org \
    --cc=anna.schumaker@netapp.com \
    --cc=anton.ivanov@cambridgegreys.com \
    --cc=bfields@fieldses.org \
    --cc=chuck.lever@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=trond.myklebust@hammerspace.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.