Re: [nfsv4] Progressing RFC errata for RFC 5661

David Noveck <davenoveck@gmail.com> Thu, 19 September 2019 10:17 UTC

Return-Path: <davenoveck@gmail.com>
X-Original-To: nfsv4@ietfa.amsl.com
Delivered-To: nfsv4@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 189EA120142 for <nfsv4@ietfa.amsl.com>; Thu, 19 Sep 2019 03:17:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level:
X-Spam-Status: No, score=-1.997 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id diQ-3pqwg5rQ for <nfsv4@ietfa.amsl.com>; Thu, 19 Sep 2019 03:17:29 -0700 (PDT)
Received: from mail-ot1-x32b.google.com (mail-ot1-x32b.google.com [IPv6:2607:f8b0:4864:20::32b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0C16C1200F4 for <nfsv4@ietf.org>; Thu, 19 Sep 2019 03:17:28 -0700 (PDT)
Received: by mail-ot1-x32b.google.com with SMTP id f21so2528342otl.13 for <nfsv4@ietf.org>; Thu, 19 Sep 2019 03:17:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Aefn/WulgnnK0Q8Eg7OZqAUAvXO2P1vKDNbAUawuaaU=; b=WHAHcJzgNz+uRvtdLOJGDgMDYRMJU0/WZnduNsFAdR1b3XhXzY/3C9McO+WGPmuYYY LTIPodsgIZ2SK5V3MjoWsU/l4ypGuSnR2VlZogYm8qvPygnNWyYb2GVSI/nsuSzdgRU6 3TklSs2m4ugaLT1jNGHP6vm9eT54Z2+ZlCPO+KjJ3kKEUVcLbdXAlx/cAirOmxMqJI6n hMJ3CMj3PN02Gr5mQPCWPtXBKcCeUxVI2LWmViFzA7wRXmo+56IkcBShpiVh66VU3DUY vtMQaNNurKkX9vtPRNFZgdUP/yVbyJhbNQ/PNynkuWy6e5Uh96Ox+UdVB5RhCbPHl7n0 B8tA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Aefn/WulgnnK0Q8Eg7OZqAUAvXO2P1vKDNbAUawuaaU=; b=ZmJpFiGYhek3ubpG8n5hxsOs17ak4Vgdw0UE5aqBPTKCh1CWFxE/k4vs3Eaz6cnUoV CpbkVa+ToPtG6tS9WlnQv98PZW7ZGmEv/BVjbXQRyF6LsApoCMbZ/zstdcG8VR+eooSN tgYKkIO6G9klbpuFU1kuoafKZUHsJ6MHxGB5ESdv03pRw1tyqsjJOFn4XgDxsDmCGK3G cSrEAoThgspwyU0SFgLUHgSLTKZIU+IytWZAe35N/HRQQluPcBmJWpn0ErtckEpXSqAD SdVsvq6KeX3A6zFPdtArqquCMqlCbY+B9IIsSanBlSiIaIStFvFEzXfWCuBY3P/Z4pxx mong==
X-Gm-Message-State: APjAAAVbfAYkNeq+rTwvaFyZm3TQBbBRC8RyWnL4dDhWtBr5BgUHxWx+ sbfwXP5+Qc8UQe+4hZDjSHIWmkH28IdRq/+kHoQ=
X-Google-Smtp-Source: APXvYqyqRJUjXQuXu7+EOi3lYInsAWpPOFubSQoqiRWUdARzKgSP0Uf3/BInhsbTS5Q8zR+GDK196V+TdoCTgInsxf0=
X-Received: by 2002:a9d:630a:: with SMTP id q10mr6124205otk.208.1568888247990; Thu, 19 Sep 2019 03:17:27 -0700 (PDT)
MIME-Version: 1.0
References: <DB7PR07MB5736124B2F507DA20F317BC195B30@DB7PR07MB5736.eurprd07.prod.outlook.com> <CADaq8jd4u-Lwvy_Csu2jqrcGFZ_tLOeSkqKwUW0eivuc=trsBg@mail.gmail.com> <CAABAsM5TDGx0qiMv+Ln4WLOKjuQiTFKr6HD6d9zqD3NfjpvoFg@mail.gmail.com> <YTXPR0101MB2189B0CB69FA090BD1D54F92DD8E0@YTXPR0101MB2189.CANPRD01.PROD.OUTLOOK.COM> <1941956044.30576385.1568804777656.JavaMail.zimbra@desy.de> <YTXPR0101MB21892F5E56B089AC6A255506DD8E0@YTXPR0101MB2189.CANPRD01.PROD.OUTLOOK.COM> <CAABAsM6wB-Jik_RqEHkzy3RrsOhrCx4X=LSxpqWz=PKvVJ7QxA@mail.gmail.com> <YT1PR01MB35931DB2A308E81571FFDD38DD890@YT1PR01MB3593.CANPRD01.PROD.OUTLOOK.COM>
In-Reply-To: <YT1PR01MB35931DB2A308E81571FFDD38DD890@YT1PR01MB3593.CANPRD01.PROD.OUTLOOK.COM>
From: David Noveck <davenoveck@gmail.com>
Date: Thu, 19 Sep 2019 06:17:17 -0400
Message-ID: <CADaq8jc3snfbjCrwNyur-3BsDnw=7BeDO52S0mgUfDWJgV4mmg@mail.gmail.com>
To: Rick Macklem <rmacklem@uoguelph.ca>
Cc: Trond Myklebust <trondmy@gmail.com>, "Mkrtchyan, Tigran" <tigran.mkrtchyan@desy.de>, Magnus Westerlund <magnus.westerlund@ericsson.com>, NFSv4 <nfsv4@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000b6bebf0592e54218"
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/rDKTJ0j7rHd4-GEpwSz15y73VuI>
Subject: Re: [nfsv4] Progressing RFC errata for RFC 5661
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/nfsv4/>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 19 Sep 2019 10:17:32 -0000

>>https://mailarchive.ietf.org/arch/msg/nfsv4/_KTtO6uz-MvRoStbhPuOXWZr6yI
>This actually appears to be a discussion related to the offset and length
arguments for LayoutCommit

True.   It appears that this change (essentially eliminating the use of
these arguments) was turned into *5* Held-over errata that just sat there
for over eight years, with not very many people knowing about them and
rfc5661 left describing a protocol thatsome people in the working group
felt to have been superseded.

The case of the meaning of  FILE_SYNC4 in pnfs-file was similar,
except that there was only one errata and it was left in Reported state.

In both cases, we will need information on the rationale for the change,
since the errata mechanism is not designed to record rationales. It appears
that it was presumed that changes big enough to require rationales are too
big for the errata mechanism.   The need for such rationales is not only to
satisfy your curiosity (and mine; it turns out I was in the hospital
while much of this discussion was going on).   These changes will have to
go into rfc5661bis which will need a "changes since rfc5661" section, which
will need, for each of these changes, a short paragraph explaining why the
change was made.

Even more important, if there are other errata that have already been
essentially approved by the working group, as the six we are talking about
have been, we need to hear about them right away, so they can be taken
account of as we develop plans to actually write and publish rfc5661bis.
We need to do this as soon as we can.   Given what we have just found out,
it appears that we are already eight years late in getting started on this
effort.

On Thu, Sep 19, 2019 at 12:07 AM Rick Macklem <rmacklem@uoguelph.ca> wrote:

> Trond Myklebust wrote:
> >Rick,
> >
> >That errata predates most of the Linux pNFS client implementation. We
> >wrote the implementation to conform to the errata.
> >
> >So no. It's not a bug. It's a deliberate design based on a decision
> >that was discussed in the IETF WG, on the mailing list
> >
> >https://mailarchive.ietf.org/arch/msg/nfsv4/_KTtO6uz-MvRoStbhPuOXWZr6yI
> This actually appears to be a discussion related to the offset and length
> arguments for LayoutCommit, but...
> >
> >and in a special session of the IETF:
> >
> >https://mailarchive.ietf.org/arch/msg/nfsv4/Rpw9XCwCARxfaU4ym5L2TauV6ao
> Ok. This was long before I got around to implementing it, so I wouldn't
> have
> understood the implications.
> --> I would have been interested in hearing the rationale behind not doing
>       LayoutCommit for FILE_SYNC4 writes, since it seems to me that
> RFC-5661
>       had gotten it right when it required them.
>
> As I said, the FreeBSD server can handle this case, it just results in a
> lot of
> overhead synchronizing Size, Change, Time_Modify between MDS and DS
> whenever a RW layout is issued to a client for the file.
>
> Thanks for pointing this out, rick
>
> On Wed, 18 Sep 2019 at 12:39, Rick Macklem <rmacklem@uoguelph.ca> wrote:
> >
> > Mkrtchyan, Tigran wrote:
> > [stuff snipped]
> > >Hi Rick,
> > >
> > >here is the public link to errata
> > >
> > >https://www.rfc-editor.org/errata/eid2751
> > >
> > >Tigran.
> > Thanks Tigran.
> >
> > Ok, so now that I've read it I have to admit I think it is rewriting the
> RFC
> > to conform with what the Linux client does.
> >
> > I think this para. from Sec. 13.10 of RFC-5661 is clear:
> >    The NFSv4.1 protocol only provides close-to-open file data cache
> >    semantics; meaning that when the file is closed, all modified data is
> >    written to the server.  When a subsequent OPEN of the file is done,
> >    the change attribute is inspected for a difference from a cached
> >    value for the change attribute.  For the case above, this means that
> >    a LAYOUTCOMMIT will be done at close (along with the data WRITEs) and
> >    will update the file's size and change attribute.  Access from
> >    another client after that point will result in the appropriate size
> >    being returned.
> >
> > It states "will be done". It doesn't say anything about UNSTABLE4 vs
> FILE_SYNC4.
> > (I think most POSIX-like clients would consider the fsync(2) syscall to
> require
> >  the same treatment as "close" above, but that is a POSIX-specific
> client issue.)
> > I can see the argument that, since there is no "must" in the statement,
> that a
> > client can choose not to do this, but that would also imply that the
> client will
> > need to live with the consequences of it.
> >
> > I think the second sentence of the first para. of the errata is bogus:
> > For file layouts, WRITEs to a Data Server that return a stable_how4
> value of
> > FILE_SYNC4 guarantee that data and file system metadata are on stable
> > storage.  This means that a LAYOUTCOMMIT is not needed in order to make
> the
> > data and metadata visible to the metadata server and other clients.
> >
> > Why?
> > The FILE_SYNC4 was returned by the DS. This would imply the DS
> > has committed data and metadata to stable storage on the DS.
> > However, I am not aware of anything in RFC-5661 that would imply that
> > the Size, Time_Modify and Change attributes or anything else must have
> > been updated or in stable storage on the MDS at this time.
> >
> > If a server does not require LayoutCommit operations for correct
> behaviour
> > then it can simply reply NFS4ERR_NOTSUPP (as I believe the Netapp filer
> > does) and the client then no longer needs to do them.
> >
> > If there is somewhere in RFC-5661 that it is stated that LayoutCommits
> are
> > not required when the DS replies FILE_SYNC4, then I missed it and there
> > is a problem with RFC-5661 that needs to be addressed.
> >
> > Otherwise, sorry, but it seems that the bug is in the Linux client
> implementation
> > and not RFC-5661.
> >
> > Is there a File Layout pNFS server implementation where the DSs return
> > FILE_SYNC4 that will break if the client does a LayoutCommit for this
> case?
> > (If so, then something may need to be done.)
> >
> > rick
> >
> >
> >
>