lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <075401d5d15d$f6d0cb20$e4726160$@gmail.com>
Date:   Wed, 22 Jan 2020 19:55:57 -0000
From:   "Robert Milkowski" <rmilkowski@...il.com>
To:     "'Schumaker, Anna'" <Anna.Schumaker@...app.com>,
        <chuck.lever@...cle.com>, <trondmy@...merspace.com>
Cc:     <linux-nfs@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
        <trond.myklebust@...merspace.com>
Subject: RE: [PATCH v3] NFSv4.0: nfs4_do_fsinfo() should not do implicit lease renewals



> -----Original Message-----
> From: Schumaker, Anna <Anna.Schumaker@...app.com>
> Sent: 22 January 2020 19:11
> To: rmilkowski@...il.com; chuck.lever@...cle.com; trondmy@...merspace.com
> Cc: linux-nfs@...r.kernel.org; linux-kernel@...r.kernel.org;
> trond.myklebust@...merspace.com
> Subject: Re: [PATCH v3] NFSv4.0: nfs4_do_fsinfo() should not do implicit
> lease renewals
> 
> Hi Robert,
> 
> On Mon, 2020-01-20 at 17:55 +0000, Robert Milkowski wrote:
> > > -----Original Message-----
> > > From: Chuck Lever <chuck.lever@...cle.com>
> > > Sent: 30 December 2019 15:37
> > > To: Robert Milkowski <rmilkowski@...il.com>
> > > Cc: Linux NFS Mailing List <linux-nfs@...r.kernel.org>; Trond
> > > Myklebust <trond.myklebust@...merspace.com>; Anna Schumaker
> > > <anna.schumaker@...app.com>; linux-kernel@...r.kernel.org
> > > Subject: Re: [PATCH v3] NFSv4.0: nfs4_do_fsinfo() should not do
> > > implicit lease renewals
> > >
> > >
> > >
> > > > On Dec 30, 2019, at 10:20 AM, Robert Milkowski
> > > > <rmilkowski@...il.com>
> > > wrote:
> > > > From: Robert Milkowski <rmilkowski@...il.com>
> > > >
> > > > Currently, each time nfs4_do_fsinfo() is called it will do an
> > > > implicit
> > > > NFS4 lease renewal, which is not compliant with the NFS4
> > > specification.
> > > > This can result in a lease being expired by an NFS server.
> > > >
> > > > Commit 83ca7f5ab31f ("NFS: Avoid PUTROOTFH when managing leases")
> > > > introduced implicit client lease renewal in nfs4_do_fsinfo(),
> > > > which can result in the NFSv4.0 lease to expire on a server side,
> > > > and servers returning NFS4ERR_EXPIRED or NFS4ERR_STALE_CLIENTID.
> > > >
> > > > This can easily be reproduced by frequently unmounting a
> > > > sub-mount, then stat'ing it to get it mounted again, which will
> > > > delay or even completely prevent client from sending RENEW
> > > > operations if no other NFS operations are issued. Eventually nfs
> > > > server will expire client's lease and return an error on file access
> or next RENEW.
> > > >
> > > > This can also happen when a sub-mount is automatically unmounted
> > > > due to inactivity (after nfs_mountpoint_expiry_timeout), then it
> > > > is mounted again via stat(). This can result in a short window
> > > > during which client's lease will expire on a server but not on a
> client.
> > > > This specific case was observed on production systems.
> > > >
> > > > This patch makes an explicit lease renewal instead of an implicit
> > > > one, by adding RENEW to a compound operation issued by
> > > > nfs4_do_fsinfo(), similarly to NFSv4.1 which adds SEQUENCE
> operation.
> > > >
> > > > Fixes: 83ca7f5ab31f ("NFS: Avoid PUTROOTFH when managing leases")
> > > > Signed-off-by: Robert Milkowski <rmilkowski@...il.com>
> > >
> > > Reviewed-by: Chuck Lever <chuck.lever@...cle.com>
> > >
> > >
> >
> > How do we progress it further?
> 
> Thanks for following up! I have the patch included in my linux-next branch
> for the next merge window.
> 
> Anna

Nice. Thanks!


-- 
Robert Milkowski


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ