10009 NFS4ERR_SAME

Parent Previous Next

NFS4ERR_SAME         10009


https://www.rfc-editor.org/rfc/rfc8881#err_SAME


15.1.15.4. NFS4ERR_SAME (Error Code 10009)

This error is returned by the NVERIFY operation to signify that the attributes compared were the same as those provided in the client's request.



1. What is the NVERIFY operation?


NVERIFY (Not Verify) is an NFSv4 COMPOUND operation used to test whether selected file attributes are different from values supplied by the client.


It is the logical inverse of VERIFY.


Purpose


Detect whether a file or directory has changed


Support cache validation


Enable optimistic concurrency control


Avoid unnecessary refetching of attributes or data


2. NVERIFY semantics (protocol rule)


For each attribute specified:


If (server_attribute_value != client_supplied_value)

   → NVERIFY succeeds (NFS4_OK)

Else

   → NVERIFY fails with NFS4ERR_SAME



This rule applies to all attributes in the bitmap.


3. Meaning of Status: NFS4ERR_SAME


NFS4ERR_SAME means the server confirms the attributes are identical to the values provided by the client.


Important clarifications:


It is not a transport or server error


It is not a LOOKUP failure


It is an expected logical result


The client asserted:


“This object should be different.”


The server replied:


“It is not different.”


4. Common attributes used with NVERIFY


Clients typically test attributes that indicate change:


Attribute        Why

change        Primary version counter

mtime        Detect content modification

size        Detect data change

ctime        Metadata change

fileid        Identity validation

5. Example NVERIFY request


Client sends:


NVERIFY

 attrmask = { change, size }

 attrvalues:

   change = 0x0000000000000456

   size   = 8192


Server state

change = 0x0000000000000456

size   = 8192


Result

→ NFS4ERR_SAME



Meaning:


“Nothing has changed.”



6. Relationship between VERIFY and NVERIFY


Operation        Succeeds when

VERIFY        attributes are equal

NVERIFY        attributes are different

Failure code        Meaning

NFS4ERR_NOT_SAME        VERIFY failed

NFS4ERR_SAME        NVERIFY failed


They are logical opposites.


7. Why clients intentionally use NVERIFY


Although it “fails”, NVERIFY is often used as a control flow mechanism:


Failure (NFS4ERR_SAME) → cached state still valid


Success (NFS4_OK) → object changed, refresh cache


So seeing NFS4ERR_SAME is often good news.




Example



NFS request





NFS response






So the phrase “responded to LOOKUP operation” is a bit misleading—what actually happened is:


LOOKUP → OK

NVERIFY → NFS4ERR_SAME



Why NVERIFY appears after LOOKUP


In NFSv4, operations are sent in a COMPOUND.

A very common pattern is:


PUTFH

LOOKUP

NVERIFY



Purpose:


LOOKUP

→ selects the target file and sets the current filehandle


NVERIFY

→ checks whether certain attributes differ from cached values


This is typically used for:


cache revalidation


pathname resolution consistency


detecting whether a directory entry changed

www.traceinside.com