[nfsv4] [Technical Errata Reported] RFC7862 (9244)

rfc-editor@rfc-editor.org Tue, 27 October 2026 22:49 UTC

Received: by mx.ietf.org (Postfix) id 85FAB46; Tue, 27 Oct 2026 22:49:04 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rfc-editor.org; s=mail; t=1793141344; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=AZBwJPavJwk5xWaTU7WdOtZIcqgRWWEpE5QHFIdvZEM=; b=RQxzadD7w3FUkleXKNOdpRG/DY08BHIuyjNCR/HDlg7kNIjuI3lgyOQhKXJK+W+qQDiInD kpMhZMX3ju5icZhB5uEK1LnRCDa/3GN5UNfA+xlPmAJM+gMytfODoX1SvdO3PAjOwnTFQ7 OHzKas0Am9RKU3YltGjqpzWWOOadeV4=
Authentication-Results: ORIGINATING; auth=pass smtp.auth=mail2@ietf.org smtp.mailfrom=rfc-editor@rfc-editor.org
Received: from errata-celery-6f84c7996-wb2x7 (gaia.k8s.ietf.org [4.156.85.76]) by mail2.ietf.org (Postfix) with ESMTP id 48A7013B2971E; Tue, 27 Oct 2026 15:49:04 -0700 (PDT)
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
From: rfc-editor@rfc-editor.org
To: loghyr@gmail.com, gorry@erg.abdn.ac.uk, spencerdawkins.ietf@gmail.com, spencer.shepler@gmail.com, mbishop@evequefou.be
Date: Tue, 27 Oct 2026 22:49:04 -0000
message-id: <179314134418.15.1059493668091857298@rfc-editor.org>
Message-ID-Hash: NA4ZA25TZKFPNCD7OPUYBQEGIFSGQLJI
X-Message-ID-Hash: NA4ZA25TZKFPNCD7OPUYBQEGIFSGQLJI
X-MailFrom: rfc-editor@rfc-editor.org
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: rfc-editor@rfc-editor.org, ben.coddington@hammerspace.com, nfsv4@ietf.org
X-Mailman-Version: 3.3.10
Precedence: list
Subject: [nfsv4] [Technical Errata Reported] RFC7862 (9244)
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/hBAcnAvXbveyAl3F39mKo0wPAik>
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>

The following errata report has been submitted for RFC7862,
"Network File System (NFS) Version 4 Minor Version 2 Protocol"

--------------------------------------
You may review the report below and at:
https://errata.rfc-editor.org/eid9244/

--------------------------------------
Type: Technical
Reported by: Benjamin Coddington <ben.coddington@hammerspace.com>

Section 14.2.3 says:

Original Text
-------------
14.2.3.  MOTIVATION

   The GETDEVICELIST operation was introduced in [RFC5661] specifically
   to request a list of devices at file system mount time from block
   layout type servers.  However, the use of the GETDEVICELIST operation
   introduces a race condition versus notification about changes to pNFS
   device IDs as provided by CB_NOTIFY_DEVICEID.  Implementation
   experience with block layout servers has shown that there is no need
   for GETDEVICELIST.  Clients have to be able to request new devices
   using GETDEVICEINFO at any time in response to either a new deviceid
   in LAYOUTGET results or the CB_NOTIFY_DEVICEID callback operation.

14.2.4.  DESCRIPTION

   Clients and servers MUST NOT implement the GETDEVICELIST operation.

Corrected Text
--------------
14.2.3.  MOTIVATION

   The GETDEVICELIST operation was introduced in [RFC5661] specifically
   to request a list of devices at file system mount time from block
   layout type servers.  It is also useful to clients of layout types
   with many storage devices, which can use the list to establish
   connections to those devices before the first I/O.  Clients still
   have to be able to request new devices using GETDEVICEINFO at any
   time in response to either a new deviceid in LAYOUTGET results or
   the CB_NOTIFY_DEVICEID callback operation.

14.2.4.  DESCRIPTION

   GETDEVICELIST is OPTIONAL, and is as described in Section 18.41 of
   [RFC5661].  A GETDEVICELIST reply can race with CB_NOTIFY_DEVICEID
   in the same way a GETDEVICEINFO reply can, and the client handles
   it as described in Section 18.40.4 of [RFC5661].

Notes
-----
Section 14.2.3 says GETDEVICELIST introduces a race with
CB_NOTIFY_DEVICEID, but I can't find an ordering that breaks.

GETDEVICELIST returns only device IDs, so a CHANGE crossing its reply
has nothing to make stale.  Notifications are registered per device ID
by GETDEVICEINFO, and the client has no address for an ID until that
GETDEVICEINFO completes.  A DELETE crossing the reply is covered by
the "mark the device ID as deleted" rule in RFC 5661 Section 18.40.4,
which already names GETDEVICELIST, and device IDs are never reused.
If an ID is deleted between the list and GETDEVICEINFO, the client
just gets NFS4ERR_NOENT.

We'd like the operation back for flex files clients with many data
servers.  Those clients pay for connection setup (TCP, and
RPC-with-TLS) on the first I/O to each data server, and a device list
at mount lets them do that work up front.

I raised this on the nfsv4 list on 2026-10-22 and haven't had any
replies:
https://mailarchive.ietf.org/arch/msg/nfsv4/L1UyZH5PaZupkAGp2s6oJEfSo34/

Instructions:
-------------
This erratum is currently posted as "Reported". Please
use "Reply All" to discuss whether it should be verified or
rejected. When a decision is reached, the verifying party  
will log in to change the status and edit the report, if necessary.

--------------------------------------
RFC7862 (draft-ietf-nfsv4-minorversion2)
--------------------------------------
Title               : Network File System (NFS) Version 4 Minor Version 2 Protocol
Publication Date    : November 2016
Author(s)           : T. Haynes
Category            : Proposed Standard
Source              : nfsv4 (wit)
Stream              : IETF
Verifying Party     : IESG