RFC Errata
RFC 8881, "Network File System (NFS) Version 4 Minor Version 1 Protocol", August 2020
Source of RFC: nfsv4 (wit)
Errata ID: 8021
Status: Reported
Type: Technical
Publication Format(s) : TEXT
Reported By: Ed Schouten
Date Reported: 2024-07-08
Section 8.2.3 says:
In the case of an OPEN, the stateid returned for the open file and not the delegation is used.
It should say:
In the case of an OPEN, the stateid returned for the open file and not the delegation is used, with seqid set to 1 explicitly.
Notes:
There is no guarantee that OPEN always returns an open_stateid with seqid == 1. If the same file already happens to be opened, the file could get upgraded. This means that if the same COMPOUND procedure contains a CLOSE that uses the current stateid (as demonstated in Figure 4), it could end up closing a file unintentionally.
The best course of action would be to require that OPEN always sets the current stateid to one having seqid == 1. That way any attempt to call CLOSE will end up returning NFS4ERR_OLD_STATEID if it turned out the OPEN did an upgrade.