Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp5656961ybl; Tue, 27 Aug 2019 07:55:31 -0700 (PDT) X-Google-Smtp-Source: APXvYqwQuqb2MxUXEX0RqBj+7MtlAKZa0raqBJhH6uZLCqW8BHQqGeqWxcDxaczN0aUX2Sa0he1a X-Received: by 2002:a17:902:8484:: with SMTP id c4mr24641876plo.223.1566917731392; Tue, 27 Aug 2019 07:55:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566917731; cv=none; d=google.com; s=arc-20160816; b=lFNg86O7boLf7D4BELkNE4/HKtZ7zi977QAEft8AeVyDtmmeV88UmxzIHrWmQTGlIC 2RGts9CyOdsCqeUxVhvXi8T9bP6kn9AzHQSSGokJqRY4bYXVGvlevIZ/bROC2cETjGS7 W/uxAIYkDiZVwMbyzsvW+1mox55F1hJmDa7IBSTldaul8RbVrAqohbYUR9nyy07Ak6fX 4RYJYQduU/IMoamFBTU4QDe6fUY/9ySme2OSZT6Kk0z7wsGxG22VD+7ZSQL30IokG0Hg K5/il32Hua7WPh2L3Lk1Xom7mjNpdFxv1ZKHMzwwxC2Rfv0T2V06cX7qeVPQ8BCRQYG3 VU+Q== 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=7lKATvj6tINvMf2Gjna/1vVLD9Mx/HM9aChZBkA3nE4=; b=Af/IG9FGNoRDw9TlMl+hcuZyZnP7yiYkel79XXYBdzu2jYz1fQiwQIKqopLNuOWccD 2EDKUSrC20UeHaSubUHs18T7ISZ2Kl3kdG0krqkAQgciISoGRCKoDVkWXr8b3QTcZf/k ua95ZmZrfucYAj9/6SqXbIQBNhbumW68JxEc40exKBMk3GPXCuJESZ2+Vh9SZCciJfAv 19PgjVRYPL/iEFItbuCr/P6lXmWIlv0bTxD8UoRjRgOR42hv1DdfClnLJ5BJNrDjpWZA qIVwxbbzH/pHxODfxNJY/osb4SprJlOjqwyGF6er/2KMOAaiqmLSOfGH9/TjZX607SOF OUug== 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 h5si2712310pjs.91.2019.08.27.07.55.16; Tue, 27 Aug 2019 07:55:31 -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 S1730079AbfH0Oy7 (ORCPT + 99 others); Tue, 27 Aug 2019 10:54:59 -0400 Received: from fieldses.org ([173.255.197.46]:47754 "EHLO fieldses.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726140AbfH0Oy5 (ORCPT ); Tue, 27 Aug 2019 10:54:57 -0400 Received: by fieldses.org (Postfix, from userid 2815) id 9AC7684A; Tue, 27 Aug 2019 10:54:56 -0400 (EDT) Date: Tue, 27 Aug 2019 10:54:56 -0400 From: Bruce Fields To: Chuck Lever Cc: Trond Myklebust , Linux NFS Mailing List , Bruce Fields , Jeff Layton , Jeff Layton Subject: Re: [PATCH 0/3] Handling NFSv3 I/O errors in knfsd Message-ID: <20190827145456.GA9804@fieldses.org> References: <20190826165021.81075-1-trond.myklebust@hammerspace.com> <20190826205156.GA27834@fieldses.org> <61F77AD6-BD02-4322-B944-0DC263EB9BD8@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <61F77AD6-BD02-4322-B944-0DC263EB9BD8@oracle.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 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? 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? --b.