Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis-09

Chuck Lever <chuck.lever@oracle.com> Wed, 19 April 2017 15:14 UTC

Return-Path: <chuck.lever@oracle.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 4D53C129AEA for <nfsv4@ietfa.amsl.com>; Wed, 19 Apr 2017 08:14:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.22
X-Spam-Level:
X-Spam-Status: No, score=-4.22 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 7UPiW6wYcXUQ for <nfsv4@ietfa.amsl.com>; Wed, 19 Apr 2017 08:14:27 -0700 (PDT)
Received: from userp1040.oracle.com (userp1040.oracle.com [156.151.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9A25E1201FA for <nfsv4@ietf.org>; Wed, 19 Apr 2017 08:14:25 -0700 (PDT)
Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id v3JFENwf021139 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Apr 2017 15:14:23 GMT
Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userv0021.oracle.com (8.14.4/8.14.4) with ESMTP id v3JFENlA029074 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Apr 2017 15:14:23 GMT
Received: from abhmp0017.oracle.com (abhmp0017.oracle.com [141.146.116.23]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id v3JFEMVh023331; Wed, 19 Apr 2017 15:14:23 GMT
Received: from anon-dhcp-171.1015granger.net (/68.46.169.226) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 19 Apr 2017 08:14:22 -0700
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
From: Chuck Lever <chuck.lever@oracle.com>
In-Reply-To: <f66e8e66-ba54-ff57-945a-7951eab2f8b1@talpey.com>
Date: Wed, 19 Apr 2017 11:14:21 -0400
Cc: nfsv4@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <BB65A737-BDBD-4A23-9CEE-2EA153293842@oracle.com>
References: <CADaq8jdkGgL+H-yoO-+bTNbSYiE_1us9cN5SXY8QV0gfYfK0Ng@mail.gmail.com> <ce42960d-d1e9-8fa6-e98e-3e9b1a2af7d6@oracle.com> <f66e8e66-ba54-ff57-945a-7951eab2f8b1@talpey.com>
To: Tom Talpey <tom@talpey.com>
X-Mailer: Apple Mail (2.3124)
X-Source-IP: userv0021.oracle.com [156.151.31.71]
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/9xTN3LcSvlRurithRZQd7EOuk0I>
Subject: Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis-09
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.22
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: Wed, 19 Apr 2017 15:14:29 -0000

Hi Tom-

> On Apr 18, 2017, at 11:08 PM, Tom Talpey <tom@talpey.com> wrote:
> 
> I noticed the same thing, and I'll add that the MUST reject condition
> is very confusing because it allows an "or". In my opinion a MUST is
> always a single requirement, never ambiguous.

I agree this kind of thing is tricky. I wrote it as "the server MUST
reject the RPC". That's the single requirement. The choice is how the
rejection is conveyed to the client.


> Is there some reason you want to allow such a choice? I think you'll
> find that, worded properly, it becomes actually much less implementable
> and interoperable than you may think.

The Solaris server can return an RPC-level error in cases like this.
I think there are similar choices allowed in rfc5666bis. Let's say
that in a perfect world, I would go with only ERR_CHUNK, but I'm
documenting existing implementation behavior here.

I'm not sure it matters to the client: both errors are permanent and
the RPC is terminated on the client.

I'm open to alternatives.


> Tom.
> 
> On 4/18/2017 6:32 PM, karen deitke wrote:
>> Hi Chuck, its unclear what you mean by "is prepared to process" in the text below.
>> Other than that, looks good.
>> 
>> Karen
>> 
>> 5.4.1
>>   If an NFS version 4 client sends an RPC Call with a Write list that
>>   contains more chunks than an NFS version 4 server is prepared to
>>   process, the server MUST reject the RPC by responding with an
>>   RDMA_ERROR message with the rdma_err value set to ERR_CHUNK.
>> 
>> 
>>   If an NFS version 4 client sends an RPC Call with a Read list that
>>   contains more chunks than an NFS version 4 server is prepared to
>>   process, the server MUST reject the RPC by responding with an
>>   RDMA_MSG message containing an RPC Reply with an accept status of
>>   GARBAGE_ARGS, or with an RDMA_ERROR message with the rdma_err value
>>   set to ERR_CHUNK.
>> 
>> 
>> On 4/18/2017 1:21 PM, David Noveck wrote:
>>> *Overall Evaluation*
>>> *
>>> *
>>> Major improvement over RFC5667.  Almost ready to ship.  No technical
>>> issues.
>>> 
>>> A lot of my comments are basically editorial and are offered on a
>>> take-it-or-lease-it basis.
>>> 
>>> I think some clarification in Section 5.4.1 is needed although not
>>> necessarily in the ways suggested below,
>>> 
>>> *Comments by Section*
>>> *5.4.1. Multiple DDP-eligible Data Items*
>>> Giventhat READ_PLUS no longer has any DDP-eligible data items, the
>>> situation described in the fifth bullet can no longer arise. I suggest
>>> deleting the bullet.
>>> The penultimate paragraph can be read as applying to some situations
>>> in which it shouldn't and where the extra chunks would very naturally
>>> ignored. For example, if you had on write chunk together with a READ
>>> operation which failed, the server would have more chunks (i.e. one)
>>> than the number it is prepared to process (i.e. zero). Suggest, as a
>>> possible replacement:
>>> 
>>>    Normally, when an NFS version 4 client sends an RPC Call with a
>>>    Write list that contains multiple chunks. each such, when matched
>>>    with a DDP-eligible data item in the response, directs the
>>>    placement of the data item as specified by
>>>    [I.D.-nfsv4-rfc5666bis]. When there are DDP-eligible data items
>>>    matched to write chunks that an NFS version 4 server is not
>>>    prepared to process, the server MUST reject the RPC by responding
>>>    with an RDMA_ERROR message with the rdma_err value set to ERR_CHUNK.
>>> 
>>> With regard to the last paragraph, I am curious that this paragraph,
>>> unlike the previous one, allows GARBGEARGS. Is this so because that
>>> would be allowed if the chunks in question had offsets other than
>>> those that correspond to DDP-eligible data items? If so, please
>>> consider the following possible replacement.
>>> 
>>>    Normally, when an NFS version 4 client sends an RPC Call with a
>>>    Read list that contains multiple chunks, each such, when properly
>>>    matched with a DDP-eliigible data item in the request, directs the
>>>    fetching of the the data item as specified by
>>>    [I.D.-nfsv4-rfc5666bis]. When there are DDP-eligible data items
>>>    matched to read chunks that an NFS version 4 server is not
>>>    prepared to process, the server MUST reject the RPC by responding
>>>    with an RDMA_ERROR message with the rdma_err value set to ERR_CHUNK.
>>> 
>>> *5.6. Session-Related Considerations*
>>> In the third sentence of the second paragraph, suggest replacing "no
>>> different" by "not different".
>>> In the last sentence of the last paragraph, suggest replacing "is not"
>>> by "were not"
>>> 
>>> 
>>> _______________________________________________
>>> nfsv4 mailing list
>>> nfsv4@ietf.org
>>> https://www.ietf.org/mailman/listinfo/nfsv4
>> 
>> 
>> 
>> _______________________________________________
>> nfsv4 mailing list
>> nfsv4@ietf.org
>> https://www.ietf.org/mailman/listinfo/nfsv4
>> 
> 
> _______________________________________________
> nfsv4 mailing list
> nfsv4@ietf.org
> https://www.ietf.org/mailman/listinfo/nfsv4

--
Chuck Lever