[nfsv4] Re: I-D Action: draft-ietf-nfsv4-uncacheable-directories-12.txt
Rick Macklem <rick.macklem@gmail.com> Mon, 05 October 2026 18:55 UTC
Received: from mail-ed2-x10.google.com (mail-ed2-x10.google.com [IPv6:2a00:1450:4864:33::10]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by mx.ietf.org (Postfix) with ESMTPS id D777542 for <nfsv4@ietf.org>; Mon, 05 Oct 2026 18:55:52 +0000 (UTC)
Authentication-Results: mx.ietf.org; dkim=pass header.d=gmail.com header.s=20251104 header.b="GZe/3F/N"; spf=pass (mx.ietf.org: domain of rick.macklem@gmail.com designates 2a00:1450:4864:33::10 as permitted sender) smtp.mailfrom=rick.macklem@gmail.com; dmarc=pass (policy=none) header.from=gmail.com; arc=pass ("google.com:s=arc-20260327:i=1")
Received: by mail-ed2-x10.google.com with SMTP id 4fb4d7f45d1cf-6a60591ae54so2851412a12.3 for <nfsv4@ietf.org>; Mon, 05 Oct 2026 11:55:52 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1791226546; cv=none; d=google.com; s=arc-20260327; b=MV+fJStkjn+Z8Ly7aCwLYo4fzsKoZIBBg02568VDOIcvRqJHWbjGQ9ingngOcD37ZS HFL1RdZ93vPXNwTC9tQ+lG7fLVlctxbKzPfqtWdT/JakmCNpbwiCbOUgxSvnam3tI4bG ZmLC+08RjzcLEy7kkYuR1ZLV3jGi+t8FsYTpqgY0XQr2TuQCgQCPpLeXf8d+WY6+84Sg QK5tshhbrNiPOhAgSxgWuTLksx8Wday4SUS6sBLBYki//CpohFcKmLG4Ao+mjseompBi 1ID4W4WPy56oklbTsQCizBQrBOX+7JuhAK3iuTYS4Oie6nw3RMjvg4IkbpGRNh58QX8/ 8qKQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=2S5ktjiZYCsjU9XFP854QqVGrNBVabn9/q2AgaPOL80=; fh=EsU4EnpZdtgxmnFnJWVEmrfM4YjFSFFVjRH51XbVkXI=; b=UmpI6TxPrSh7+1ECgK0ZXDNaqiDtXqrXLHTYDNK5HQHTjoF0MoQsM1k4ziMwX3tDg0 TWXeFT83BqVUtRNftFTIWWj9cM8IfRCSVP4/iP4ZR+Q7rEDWZvLnpdSutktArVfb5ac0 uwD7r7E7NeXTlBbjUV3Y9ZBhEJKNBxjwvDuudSLyuRhAS19nUGeh1GaSsXLd2sVEA/MZ cZnvy4EZouJfFjGK6ZKeHykPoDZw/C9LkUgqaf2p09RIVhlBHdJi0NYxBYMSaAxkEVli ayhqO1dqsLgS8zRZNWalkFQbBpaCnf5l7CI8Q95NLUEhJ0BxvRtOPgJSg8chjShpDREl olwQ==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1791226546; x=1791831346; darn=ietf.org; h=content-transfer-encoding:content-type:cc:to:subject:message-id :date:from:in-reply-to:references:mime-version:from:to:cc:subject :date:message-id:reply-to:content-type; bh=2S5ktjiZYCsjU9XFP854QqVGrNBVabn9/q2AgaPOL80=; b=GZe/3F/N59KSzuzlX0msElPSRXrCgL5sOnQCXOZvnBdf8fWdEJ0lYwm7jjyl9hyJTQ pB6jBJKeubtmo2Iv1bEMpseyr2ds9mk3CfzqjLaRevjckXCMcHbXFbGYD0iYHkDzBsrP 8jblO6Ko/nn3odfX3zmh3vZXGn7RviFbFlu+QmoHKjM6C/WcQl2gohoUFB9sgq4/LpjT H6GXaOSU4JQTG1lWIyfpdoxXncPg9VTG68GuNrF3v2zLnJxg52tUDfTqJjU3HnrN4rEj ELQrHZPhspBqvkB4Fb2+HTfJtFQluYjyfke7r3/10MemNxmRyiJ0xVHRCGI8UU0XzVIq 2aZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791226546; x=1791831346; h=content-transfer-encoding:content-type:cc:to:subject:message-id :date:from:in-reply-to:references:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=2S5ktjiZYCsjU9XFP854QqVGrNBVabn9/q2AgaPOL80=; b=a1Cbz1+fW3e0SbNZY+GNwDsIg8POO/uZmKjllB4oYIfM4LoTCrif6WFEDTnUsydz7T tAyDuVROw082xO2gwLncJNbzmJW+oxI4bOk6/Mws4GzhzO0Qbn83ZE3ix/Bn2cZcq4TX Q0N4BzLBuEzYnRik7qQLtMMu0Cp1lYkd2YWeEvoMZhNLXXS9BbjeFvYJeIk0vZAIzcGJ 7QtRro4RthOePFoPO7Ilu9G3jPMPRzkRxQ5f+J7TSsQQU3sfx6huKXMB0ySPLseBxVQo aQAJNCgFHWvVRqtG4s5dxYn1qWj1/DmqpP7xIhVbNczOMa6kC+T2ucmupDY47HGKvID+ 300w==
X-Gm-Message-State: AFq9FYJlHXaRCHxIgXpYNH+O/SzkAOPZbo0LGhIMoQASZuHXS6jO5fED nTojt0HSIwacGouzDhyb5pV1u10HOlwq7uwZI7VVx7oD7RyAajSOgUGZl+GxrfzitwFxdI9EE5r /s1e/Ypm9JnffC/Hf+gr3Uk3+J4p9NO6O
X-Gm-Gg: AYBFou3112afkCLyNKeLHmB3llZhp4Bu1esI/UxhHWAXKTQr2zdnqW91AbFYEOMaike 5JMIeJ7PbvS1R2lwQj6I7cxE1smaFUe7UcR/+C9CTWJsuKHOGf5XTDsyXzQrIbwUokEBym09eEx Axfs8Vx/m22GOetOZ+O+NfVVPXUOYfVoHzMVum+ZSlUmrbyC2y9e1Pa/v0zDR/ynK9ute2F7oLH c/x0MzLK/3f3T8xUiYTDjgcuTBQLyPAwiNjY0H88btmTX4NmNXrxWEvgiJFo41genI74b9mtodz zdxPq1DvpVsivRShpR3S7cvoGlyzFjq4oUZ04XM5fZEDD4nHBpcOmhVI/bjff3+AL2DlA97ShnV Ip+T94BjPNkgE
X-Received: by 2002:a05:6402:44d5:b0:6a9:ce42:e684 with SMTP id 4fb4d7f45d1cf-6af9e022740mr8089557a12.4.1791226545377; Mon, 05 Oct 2026 11:55:45 -0700 (PDT)
MIME-Version: 1.0
References: <179046038382.410259.4927822916575850427@dt-datatracker-57df95fc99-fzjcz> <CAM5tNy6K52XmtLWt_8FDHSsazPnG7L0KJnAhN+zy3WMt4AHKZA@mail.gmail.com> <107108f8-3185-46ec-81be-278c911cde2e@slotpi15m67>
In-Reply-To: <107108f8-3185-46ec-81be-278c911cde2e@slotpi15m67>
From: Rick Macklem <rick.macklem@gmail.com>
Date: Mon, 05 Oct 2026 11:55:33 -0700
X-Gm-Features: AclHuK9d-uRYXQyoXnXmFF8WP8zfqsCkpMJVUbL-eV_AZTSz_LZpavLZGWxnFsY
Message-ID: <CAM5tNy4FKVeZhS9dbC_FO=vw84Qu=jWsy-VBgn5bw2TLC7X8hw@mail.gmail.com>
To: Chuck Lever <cel-ietf@chucklever.net>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spamd-Bar: ----
Message-ID-Hash: XANK3ZK2AJD743JFJCIBMEP3J25QCOPM
X-Message-ID-Hash: XANK3ZK2AJD743JFJCIBMEP3J25QCOPM
X-MailFrom: rick.macklem@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-nfsv4.ietf.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: nfsv4@ietf.org
X-Mailman-Version: 3.3.10
Precedence: list
Subject: [nfsv4] Re: I-D Action: draft-ietf-nfsv4-uncacheable-directories-12.txt
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/9dCmh896sUt4RF0tIEUhMZfUgVg>
List-Archive: <https://mailarchive.ietf.org/arch/browse/nfsv4>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Owner: <mailto:nfsv4-owner@ietf.org>
List-Post: <mailto:nfsv4@ietf.org>
List-Subscribe: <mailto:nfsv4-join@ietf.org>
List-Unsubscribe: <mailto:nfsv4-leave@ietf.org>
On Thu, Oct 1, 2026 at 9:14 AM Chuck Lever <cel-ietf@chucklever.net> wrote:
>
> Speaking as NFSv4 WG co-chair.
>
> Rick, thanks for your feedback.
>
> > I think I understand how this attribute is meant to be used and support
> > the concept. Having said that, I find the document complex/confusing/etc
> > and,it I implement the attribute in the FreeBSD client, I will largely ignore
> > what is in this document, as currently written.
>
> The chairs stated that a third WG Last Call on this document would
> follow -12. However, an implementer's statement that he would ignore
> the text bears on whether the document is actually ready for that Last
> Call. I understand well that your statement was not an objection to
> moving forward to publication.
>
> Before the Last Call opens, the chairs would like to know whether the
> implementation you have in mind would do what Section 5.1 of -12
> requires, or something different. The rule now in Section 5.1 is:
>
> > If a directory object has the uncacheable dirent metadata attribute
> > set, an honoring client MUST NOT satisfy a readdir of that directory
> > from READDIR results obtained during a different enumeration, and
> > MUST NOT report, for an entry, a value of a dirent metadata attribute
> > that it received before the READDIR that most recently returned that
> > entry, whatever operation supplied that value.
I did miss that during a first read of the draft, but am aware of the
requirement now.
>
> Previously you described the attribute as a "strong hint" to the
> FreeBSD client to use a READDIR COMPOUND instead of a READDIRPLUS.
> Section 5.1 allows a client to leave the attributes out of the
> READDIR ("or obtains them afterwards"), but only if the client then
> does not answer from attributes it already held.
Given the above, I think the FreeBSD client will ask for (type,
fileid, file_handle)
when doing the READDIR operation and will use the file_handle to invalidate
cached attributes for the file object that might change when the file
is written.
>
> My clarifying questions about the client as you would build it are:
>
> 1. An application enumerates the directory a second time, and the
> directory's change attribute has not moved since the first pass.
> Does the client send READDIR, or does it answer from the results
> it cached on the first pass?
Hmm, good question.
At this time, I was thinking of not doing a second pass READDIR,
but I do see an argument for needing to do the READDIR again
in order to satisfy the above requirement of never using attributes
acquired before the readdir.
So, I'd say this is an open question and not one easily dealt with by
the draft, since it cannot really specify when a client chooses to do
a READDIR?
>
> 2. The READDIR did not request an entry's attributes, and an
> application then stats that entry while the client's cached
> attributes for the file are within their normal timeout. Does the
> client send GETATTR, or does it answer from its attribute cache?
I'd say "answer from its attribute cache" unless the uncachable-file-data
attribute is set for the file object.
>
> 3. Is the answer to question 2 the same for every attribute, for
> example mode and owner, or only for size, time_modify, and change?
> Section 3 of -12 defines dirent metadata as every file attribute a
> READDIR can return; you asked for "attributes that might change
> when a file is written".
Actually, I was thinking that "attributes that might change when a file
is written" applies to the uncacheable-file-attibute attribute as well.
Attributes that do not change for the life of a file don't seem to be an
issue. Attributes that might change due to SETATTR but not related to
writing the file's data (owner, owenr_group, mode..) do not seem to
be related to these uncachable attributes either, although I'll admit I
would have to re-read the uncachable file attribute draft again, to
see exactly what it says.
File attributes are a large grab bag which seem to be of three types:
1 - Never change for the life of a file object.
2 - Can be changed by SETATTR, but not related to the file object's data.
3 - Can change when a file's data is written.
It seems to be that both the uncachable-file-attribute and
uncachable-directory-attribute
are meant to affect caching of #3?
rick
>
> Let's document where your answers differ from Section 5.1 before the
> third Last Call opens, either as a defect in the text or as a
> (small oh) objection to the rule. Possibly Tom might not object to
> some changes to the language to accommodate -- at least it could be
> mentioned as one of the reasons a client might ignore a SHOULD.
>
>
> --
> Chuck Lever (Come to NFS bake-a-thon! https://nfsv4bat.org)
- [nfsv4] I-D Action: draft-ietf-nfsv4-uncacheable-… internet-drafts
- [nfsv4] Re: I-D Action: draft-ietf-nfsv4-uncachea… Rick Macklem
- [nfsv4] Re: I-D Action: draft-ietf-nfsv4-uncachea… Chuck Lever
- [nfsv4] Re: I-D Action: draft-ietf-nfsv4-uncachea… Rick Macklem
- [nfsv4] Re: I-D Action: draft-ietf-nfsv4-uncachea… Chuck Lever
- [nfsv4] Re: I-D Action: draft-ietf-nfsv4-uncachea… Thomas Haynes
- [nfsv4] Re: I-D Action: draft-ietf-nfsv4-uncachea… Rick Macklem