Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Summary: # This diff Adds ESTALE (StaleNetworkFileHandle) to the list of IO error types that should be retried. Also add a test to ensure this type of error is retried on macOS. # Context There's another frequent (transient) NFS error that can be retried. The error is ESTALE, which can be returned by an NFS server at any point in time. The error indicates that the file handle that was used to make a request is no longer valid, and that the request should be retried with a new handle. See: >Servers can revoke the access provided by a file handle at any time. If the file handle passed in a call refers to a file system object that no longer exists on the server or access for that file handle has been revoked, the error, NFS3ERR_STALE, should be returned. >NFS3ERR_STALE: Invalid file handle. The file handle given in the arguments was invalid. The file referred to by that file handle no longer exists or access to it has been revoked. >A file handle may or may not become stale on a rename. However, server implementors are strongly encouraged to attempt to keep file handles from becoming stale in this fashion. To respect the NFS spec, we should assume that the EdenFS/NFS server can and will return ESTALE on occasion, and that Buck should retry IO requests when an ESTALE is returned. Reviewed By: JakobDegen Differential Revision: D69892541 fbshipit-source-id: 22e8cf395c74deb962eeba9ff60f1a2262fc7b1d
- Loading branch information