Re: [nfsv4] RFC: Is Open/Claim_Delegate_Prev done before/after Reclaim_complete?

Trond Myklebust <trondmy@hammerspace.com> Fri, 05 April 2024 04:18 UTC

Return-Path: <trondmy@hammerspace.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 AB1F7C14F705 for <nfsv4@ietfa.amsl.com>; Thu, 4 Apr 2024 21:18:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=hammerspace.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uXqNjo0UrK_9 for <nfsv4@ietfa.amsl.com>; Thu, 4 Apr 2024 21:18:26 -0700 (PDT)
Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2110.outbound.protection.outlook.com [40.107.237.110]) (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 9DA52C14F6BA for <nfsv4@ietf.org>; Thu, 4 Apr 2024 21:18:25 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fiqz8keJ0i4p3riU58Gtw2zHvEVjRuEfLNeuZFcGcepy4lvJ0m0S86MSPlpMIg9AbcFBLPPJaHx/WhyMXM9rlqMDBI8ALokOxEtz6rki/Ww2U1Oej3psQfnQHETpwReTm0ToWOUxaXx+1as0MUSRSXa2rcbevjbpUxu51yPHCFTzuCMZngB5RF8pLhJT564NFBfBtS8ZZZIcL7HxOTP8LOWUZZ0qqXBnjEj3Hz2gci2LLcY45Y/QJAcWTXDLXPE8HfzeJPNQ1KMUYeGtbwEAAQCrfVNVXY6Hnt9E/JIK68DVrP1JhAHeODcNkRW5j/Sd/JH8co24SvmJLHIoLvb4vQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=aNXZzb6N5eD7CUivg4n4rPKkFJZpMYLU0mAlICnFjHY=; b=BoG6bofFKrDmRw+2GwKvTJduc9ybEGWwMeWlBVy1qtMFI+6apP/kjN9+0q7Tfmq/6NCY0fdQgj6HDecRj/r3InYA8HX3uwBdvjrYRy78VlQGBw+ZB2l0l4o4+FpDMUcpRMOdS/NI9SheWP3Ie3toSQDEtknI/Qud9z3OtcLC2G+mucYA3WYlTO29otrt4/7aJRNA68kRwfyGPn4ybpZFs95MSrYRrA98Iv4Q85rhBnG1b1qyTbLcugHrY9LOhHARgYm3KoIjXnJeGoMhp5yHOSQZuNgWn8vAPpvSWI0e0pFCYCjG92pkTCt6NagqT7h0/tVQCxwCW2Uunh/4N91Tdw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hammerspace.com; dmarc=pass action=none header.from=hammerspace.com; dkim=pass header.d=hammerspace.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hammerspace.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aNXZzb6N5eD7CUivg4n4rPKkFJZpMYLU0mAlICnFjHY=; b=YNcUodLAHGQIQjrnvGvcxxuVCXidhgLqzRyDuFJ9xcnqKyuuoW9ibSJ/QemayNNP5IqGAVQJhf74JkqMNsJd32GbpgOwuirU2IpColfM/430VeNQL+ebco2zbc1nxO1gRi/BDtLpvS2x+w53uBzIcyTJCpKIZ/OcG0QEiKxijfk=
Received: from CH0PR13MB5084.namprd13.prod.outlook.com (2603:10b6:610:111::7) by BY5PR13MB3779.namprd13.prod.outlook.com (2603:10b6:a03:229::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Fri, 5 Apr 2024 04:18:23 +0000
Received: from CH0PR13MB5084.namprd13.prod.outlook.com ([fe80::5bb5:501a:fb40:5057]) by CH0PR13MB5084.namprd13.prod.outlook.com ([fe80::5bb5:501a:fb40:5057%6]) with mapi id 15.20.7409.042; Fri, 5 Apr 2024 04:18:22 +0000
From: Trond Myklebust <trondmy@hammerspace.com>
To: "rick.macklem@gmail.com" <rick.macklem@gmail.com>, "nfsv4@ietf.org" <nfsv4@ietf.org>
Thread-Topic: [nfsv4] RFC: Is Open/Claim_Delegate_Prev done before/after Reclaim_complete?
Thread-Index: AQHahxBMvCkGUO5qpkColHKPwUmNUw==
Date: Fri, 05 Apr 2024 04:18:22 +0000
Message-ID: <19e3502ca1859608975bd17dc18e6774bf0bfab3.camel@hammerspace.com>
References: <CAM5tNy4y36AEyD5SeOZ2F1t8AYhu8-ZKPyNvCd-dmydFg1kJtA@mail.gmail.com>
In-Reply-To: <CAM5tNy4y36AEyD5SeOZ2F1t8AYhu8-ZKPyNvCd-dmydFg1kJtA@mail.gmail.com>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: CH0PR13MB5084:EE_|BY5PR13MB3779:EE_
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: fw/+SYjnjPGy8M+eopPqgj43wz7CcCOJ6oCVtgt8r5HZrzTHqV2cx3biEDzJdV9u5RQsALQVG4rdgKQorGX4g5SDiTKle0X5lpOZD0W/DU8m+qUa38ELaEIBOv/TkQbazvVUGR2uYRFUIZcji5aaQquTUX4TIcKyNvDBwJcmj73SHQK3ZiSFUpKzaGt+tkgxVPXp+o4vC7ccMX1embIFbyfApL2GOu8fqjlab6v7qtk0w3bS0PJOXUeiikmKk7daEFJtnXlI9s4Ami3mx3UxOTtC9kxiWlMZJ16ayH9zxE7etcIVeQ55fl9dqU9zFCC/k+aCWbFYGjCAjUrUmDVK47kM57ne03FDlQK+ZJ+Sq1xKzygB49L9mmq2FPzxrhSljk1sHY+DJAwEV+J4Tvz1W5Bdm3RNHwjx+9+E41vgUQA0HmgPUOZomTHM3sOMtsBXym1vbfUtdcTaUWSJTEfXK3qrp1DfT6FGfAYgsQ4iVtn8dUQ7WuyO7zJ52EDK/w61IaItubIrRKmLVuipNJ+xMO6wf+Tk9I3dgcbGe8VSSA1vaiEBHmxDxWBIoQXAaCyijzN5dTmIcbYgIrPOjYag2D3z1D/kkOkfmrA1ISK4Nm0OzoOlcc1w4w2qkHb8PlXJ2HP5dKNeInlb5B0lvATFG4jUIgmMGkuuN3bJgGOaAg8=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH0PR13MB5084.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366007)(1800799015)(376005); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: cFuGxnIiRUjhoOeVGn4/8zn3JYfymRjj1G3P+MiIS2xlfB6LaKEjHP8dk69Q2pXVzr4yQAjsdq1MQmqTSUhlTNOnNxyHUy7QnRkUIg7bt25zgS8huE2DFzxpx10URuhqMa4QI9g51gIGQDl3WIUAHr0JnqdJ3rdloWU+G7odSudOjw3aV8JiuTgVsI+RBFSYrSEDW1IBi8WUo3W9w0/WAIaBUdy0vEiWWLDiFc+oalEwRJ4HZXieFEtnjTT7hBEp4hVS1Uvxl230pMT8HFRqBwBpSUYsqYr1eZekzF3rHFWZ4dbqg68M4dWp4sRo/LiRHmC6ylimp+OvQlVSKtOpBZbxydPF2+UgUK3QftnD1eqp6iUptZ6P/V1HntCcEby+8iSZxJ6/SXiA+a2BYDiFSubdbOOKxe6zrgU4K1mv551BbUD9xvCslzYNp3jJw1f5RucQu+5BuM/EQnJa+7Cd/qGDUR2FvV8KcU92xv+diJ718Gz/Un8xa1nzOFVUOzLow89PRufTBtO7Dg546G29ZaXpsvbWHkDMwRdq/8Y/ye/FgL4bHoXLKrYEWx7P13o+E5yEdNgXBbzGxEKnHWTAjkytrLgfJAtc20xk3Lslu0x/OmiauxHRYn7C0HQLDQ/7QcpP+WR5VYGehNdjc8uyTgAShnFshRsA/PzmJsIExd63KmejjpwNRQNnc9d91lmTIv5kRaY/62enkBdTcs8NGsgDIkd1k/JXE7Nocny+MkRfTRIjIppgf2lfJ5CoL13Wk2IBxabyZnI2OolsZjjlSukdIuzIgcqDSvQ4h31U72fGDj6vam81g8na/36/ng6hvPsKpmY7DA3fP/TH74xQPpdeJeBAzUn1KCahPigy7XhCFZgIhroM/IvWZJ9l0rIbIJdLP4l7ioa8j8vYs3xFSTgbgW8r/QiSkPgq4j4S8GUJaJiZBQqcH7nS+ib7TI4DuybWIy+gZZzsIJmHLPkyj/De9pUE4qimCZoezvsxeCaKam1fhUH89EssTP7DfspEl77sBDYgnvGNcOwxLyNWjO3St1YNgaUYTeRdw4gEkhYl0WOzL+jN8p7zOTDNYbtt/Uz/25/j63el9DP9XjAMiB9gMDmqswffokbUmylvEVDOXebKUrmg8iaY2scvGDf5O5Ktu/sDvdC8l5mcAJyUtSdv8P2WI5XEeKuqDkf6VWu/E1PnNcevN+lFHPR9ET4qpNVl8/l2WEziteJ5qF6fZ4bGDJFuXp7JcR6fYDy3I1Zf0pcP7TvrlwN70bVw9UJWVR7JL0Ni3XYkEmULhlYLgBSHAQx8hRQ3v2uJAzdHb++xfqrsgRxTIhziduv+/b6PzXOwD9lMDGzEBl0M+iaeEVqgMeBYiPctp7u4PT9xpinKxFUasM8oPlF33n0t9lrgycMMu37T05nsuvm55lII1o7BEajdQ2FqVaGHbB/oZ3qnIHWwD1w1cd2Zg+r7gNSfdsJumFjgGYcX2xcQXxv6qYk6zRGjTPRj4laULSJ2ijmKm/VrToeUrciWqw53ia1hcKRXQW58KMjAWoIXU5+fuwMoMZ9i7Oz21Fiew4lBOSJQ4yEDY9uND4btdue7wt+m7izGqWcuMQW4SfLZWrk3pkHWKD8sH9/t64bxhIAv+2YJ+ARBMmLmTZ38iD/wrg7iKkXChYOqGVs6YCQHbIhIwA==
Content-Type: text/plain; charset="utf-8"
Content-ID: <34D1574221396544A433B12AE482D330@namprd13.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: hammerspace.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: CH0PR13MB5084.namprd13.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 94393aea-9892-4832-603a-08dc55276e95
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Apr 2024 04:18:22.6751 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 0d4fed5c-3a70-46fe-9430-ece41741f59e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ZFD7YqZgn3XcIYeQHOwJhMiO2bbM9e2/EwSCnaeCDZ9OfVRT5jxwmUCvQC/mD6ZzeA4aY2Jj9tM71I8OMdmOCQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR13MB3779
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/ZK5XtFApqkynVKXydy8UClg64_A>
Subject: Re: [nfsv4] RFC: Is Open/Claim_Delegate_Prev done before/after Reclaim_complete?
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.39
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: Fri, 05 Apr 2024 04:18:30 -0000

On Thu, 2024-04-04 at 16:23 -0700, Rick Macklem wrote:
> Hi,
> 
> I am in the process of implementing Open/Claim_Delegate_Prev and have
> run
> into a question I cannot seem to answer from reading RFC8881.
> 
> There is this snippet:
>    enum open_claim_type4 {
>            /*
>             * Not a reclaim.
>             */
>            CLAIM_NULL              = 0,
> 
>            CLAIM_PREVIOUS          = 1,
>            CLAIM_DELEGATE_CUR      = 2,
>            CLAIM_DELEGATE_PREV     = 3,
> 
>            /*
>             * Not a reclaim.
>             *
>             * Like CLAIM_NULL, but object identified
>             * by the current filehandle.
>             */
>            CLAIM_FH                = 4, /* new to v4.1 */
> The comments in the above seem to "hint" that CLAIM_DELEGATE_PREV is
> a
> reclaim type operation.
> If that is the case, I'd assume it/should be performed by the client
> before it does a
> Reclaim_Complete?
> 
> Then there is this snippet:
>    For OPEN requests that reach the server during the grace period,
> the
>    server returns an error of NFS4ERR_GRACE.  The following claim
> types
>    are exceptions:
> 
>    *  OPEN requests specifying the claim type CLAIM_PREVIOUS are
> devoted
>       to reclaiming opens after a server restart and are typically
> only
>       valid during the grace period.
> 
>    *  OPEN requests specifying the claim types CLAIM_DELEGATE_CUR and
>       CLAIM_DELEG_CUR_FH are valid both during and after the grace
>       period.  Since the granting of the delegation that they are
>       subordinate to assures that there is no conflict with locks to
> be
>       reclaimed by other clients, the server need not return
>       NFS4ERR_GRACE when these are received during the grace period.
> This clearly states that CLAIM_DELEGATE_PREV cannot be performed
> during the server's grace period.
> 
> The above two statements are not necessarily contradictory but it
> does seem
> that, if the server is in its grace period, the Reclaim_Complete
> needs to be
> done before any Open/Claim_Delegate_Prev, since Reclaim_Complete
> tells
> the server when to end its grace period.
> Note that, usually, a client would not be rebooting when a server is
> in its
> grace period, but that could happen.
> 
> Bottom line...
> Should a client perform Open/Claim_Delegate_Prev before or after
> Reclaim_Complete?
> And, if the answer is "after", how does the server know when a client
> is done recovering opens/delegations via Open/Claim_Delegate_Prev?
> 
> Thanks for any help with this, rick

CLAIM_DELEGATE_PREV has now survived at least 24 years as part of a
"standard" and has yet to be properly described. I can find references
to it in RFC3010 and all NFSv4 descriptions since then, but I have yet
to meet anybody who can claim to have implemented it in a product.

IMO, it is time to drop it, and start afresh with something that has
actually been road tested before someone started putting pen to paper.

In other words, let's figure out what we want from this feature, and
actually attempt to implement it before we start arguing about how to
interpret an uninteresting 24 year old "spec".

-- 
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trond.myklebust@hammerspace.com