Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp5663320ybl; Tue, 27 Aug 2019 08:00:58 -0700 (PDT) X-Google-Smtp-Source: APXvYqyOIiJ4bVasP1TGfApAfnFMX99qC1+1OpgBDHG0w/fu4NCszw8E/3D9J88Y/GLWYcA9MtlR X-Received: by 2002:aa7:9086:: with SMTP id i6mr11913152pfa.216.1566918058910; Tue, 27 Aug 2019 08:00:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566918058; cv=none; d=google.com; s=arc-20160816; b=XX02fWr6u9DXmThFOV5UBDN9cF5BUeT2efEeQPiAr6W86uR0b2Dp7KuFFVkTlW5Yk7 APIG8A1Ifr2kq/uNlfsjmRwYcJOZvQbma2zqrXcqgtIBMVi7JzlWPALd6jNd3k7K8Png W51p9ZC8nSne+itkp1fu6HhRGweFBhPv/UGuoB4/aR/t+3dY52IF3ad0FFvNn2rQAj7h g4yNBA/+q1zT0Qe0iBhbmNJWLFGDX03kF84+0Gk6z+isKPU5NA52tGTb/r3Ftx1oU4/R bDijmXF9/7yjV3bVRIfSEGd3tGr1R5IJH/QDLqQ+mZuqU81eFf/t174G2bagJnYRE2Ho ClVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=xw6BI9EzaeJtyIQfplfmmNYNZG/n8JKxhuoM4AOICts=; b=EzwPOBHlJhUSS21yAyCcGYh23obCjPut4iqoFTfBDZQNxdNoEfXa72Z8cXIgT7MHbo gF04tLk+yih4qr5GWnnB7chdXIgC9JqQUcCmViwXuuyFtGQW5YgZiwN+DbxNftsZ9flW aS+QZBq1GB4FFwPE7RdNyrU6GvBdb+irup7ZZ8twGq+TZayyWzrS4Gev5UxG8/NgKqAM dJNFUMCmVBnyexURK7p9rEoTYpwlegGsN9GHZhsIoaHODpI99Tb66RHw7qoE2FPpDarY OrIBzRAXRejbhiToYVmcF8s8AGwouNaPSKd/RvNTJl4J/3sdrCqnUBiMlz0g+RgbjgBG OUTg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y7si12115140pgj.486.2019.08.27.08.00.44; Tue, 27 Aug 2019 08:00:58 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726140AbfH0PAm (ORCPT + 99 others); Tue, 27 Aug 2019 11:00:42 -0400 Received: from fieldses.org ([173.255.197.46]:47792 "EHLO fieldses.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725987AbfH0PAm (ORCPT ); Tue, 27 Aug 2019 11:00:42 -0400 Received: by fieldses.org (Postfix, from userid 2815) id 6F3A01CB4; Tue, 27 Aug 2019 11:00:42 -0400 (EDT) Date: Tue, 27 Aug 2019 11:00:42 -0400 From: "bfields@fieldses.org" To: Trond Myklebust Cc: "chuck.lever@oracle.com" , "jlayton@redhat.com" , "linux-nfs@vger.kernel.org" , "bfields@redhat.com" , "jlayton@poochiereds.net" Subject: Re: [PATCH 0/3] Handling NFSv3 I/O errors in knfsd Message-ID: <20190827150042.GD9804@fieldses.org> References: <20190826165021.81075-1-trond.myklebust@hammerspace.com> <20190826205156.GA27834@fieldses.org> <61F77AD6-BD02-4322-B944-0DC263EB9BD8@oracle.com> <20190827145456.GA9804@fieldses.org> <5e9d8bceb67d20f6e89f81cb7f2a4eca5e842bcf.camel@hammerspace.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5e9d8bceb67d20f6e89f81cb7f2a4eca5e842bcf.camel@hammerspace.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org On Tue, Aug 27, 2019 at 02:59:34PM +0000, Trond Myklebust wrote: > On Tue, 2019-08-27 at 10:54 -0400, Bruce Fields wrote: > > On Tue, Aug 27, 2019 at 09:59:25AM -0400, Chuck Lever wrote: > > > The strategy of handling these errors more carefully seems good. > > > Bumping the write/commit verifier so the client writes again to > > > retrieve the latent error is clever! > > > > > > It's not clear to me though that the NFSv3 protocol can deal with > > > the multi-client write scenario, since it is stateless. We are now > > > making it stateful in some sense by preserving error state on the > > > server across NFS requests, without having any sense of an open > > > file in the protocol itself. > > > > > > Would an "approximation" without open state be good enough? > > > > I figure there's a correct-but-slow approach which is to increment > > the > > write verifier every time there's a write error. Does that work? If > > write errors are rare enough, maybe it doesn't matter that that's > > slow? > > How is that different from changing the boot verifier? > Are you > proposing to track write verifiers on a per-client basis? That seems > onerous too. Sorry, I thought "write verifier" and "boot verifier" were synonyms, and, no, wasn't suggesting tracking it per-file. --b. > > Then there's various approximations you could use (IP address?) to > > guess > > when only one client's accessing the file. You save forcing all the > > clients to resend writes at the expense of some complexity and > > correctness--e.g., multiple clients behind NAT might not all get > > write > > errors. > > > > Am I thinking aobut this right? > > I agree that there are multiple problems with tracking on a per-client > basis. > > -- > Trond Myklebust > Linux NFS client maintainer, Hammerspace > trond.myklebust@hammerspace.com > >