Watch at EaseStories. Answers. Perspective.

Technology · PRACTICAL GUIDE

NFS says “Stale file handle”? Prove which server identity changed before remounting

ESTALE means a stored reference no longer names a valid object. Separate mount-time export failure from operation-time object failure, fix the server boundary, then reconnect one client and verify the workload.

Diagram separating observation, identity comparison and stabilization.
Original Watch at Ease illustration: prove the changed NFS identity before reconnecting. Watch at Ease

ESTALE means a stored reference no longer names a valid object. Separate mount-time export failure from operation-time object failure, fix the server boundary, then reconnect one client and verify the workload.

Linux defines ESTALE as “Stale file handle”; it can occur on NFS and other filesystems. NFSv4 persistent handles become stale when the referenced object is removed or its filesystem is unavailable.

1. Freeze the incident and protect writers

Record the exact failing command, path, client, server, NFS version, first timestamp and kernel or service messages. Pause jobs that write through the affected mount; do not start with a broad lazy unmount or export flush.

On the client, capture findmnt for the path and compare a known-good peer. On the server, capture the backing mount, exportfs -v output and relevant storage and NFS logs before changing state.

2. Classify where ESTALE appears

If mount itself returns ESTALE, investigate the requested export and live export table. If ls, open, chdir or an application fails on an already mounted share, identify the first path and whether sibling objects still work.

A same-name file or directory can be a new object after delete-and-recreate, restore, dataset replacement or storage failover. A cached client reference can therefore be invalid even though the path looks unchanged.

3. Prove which server identity changed

Verify that the exported path resolves to the intended backing filesystem, not the empty directory beneath a missing mount. Compare filesystem UUID or device identity, fsid settings, export options and recent rename, restore, mover or migration events.

RFC 7530 requires stale errors for deleted objects and permits staleness when a filesystem disappears from the server namespace. Treat a server restart as a time marker, not proof of cause.

4. Repair the narrow server boundary

Restore the backing storage first, correct the intended export path or identity, and synchronize the live export table only when the evidence points there. exportfs -r reconciles configured exports; a broad unexport or flush can affect every client and NFSv4 state.

Do not change subtree_check, fsid, protocol version or mount options merely because another incident did. Record one hypothesis and one controlled change, then re-check the server view.

5. Reconnect one client and accept the workload

After the server namespace is stable, quiesce one client, leave stale working directories, unmount the exact mount safely and mount it again. If a process cannot be stopped, escalate deliberately instead of hiding it with a lazy detach.

Acceptance requires a fresh pathname lookup, representative read, controlled write where allowed, metadata check and one application transaction. Compare another client, monitor logs, then reconnect the remaining clients.

Server, client and data acceptance gates after an NFS stale handle.
Original Watch at Ease illustration: reconnect only after the namespace is stable. Watch at Ease