Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The nfsd default lease time has been changed from 90 seconds to 45 seconds between Linux 4.14 and 4.19 by commit d6ebf5088f09 ("nfsd4: return default lease period"). After the upgrade of a nfs server (claptrap) from 4.14 to 4.19, we saw a failing process ("arplisten") and dmesg logs "NFS: nfs4_reclaim_open_state: Lock reclaim failed!" on a client (moep, 4.14.87). The client had the file system mounted with vers=4.0. Network trace indicated, that the client continued to use the 90 seconds lease period of the previous server incarnation and sent RENEWs every 60 seconds (2/3 of 90 seconds). Sometimes the server answered with NFS4ERR_EXPIRED. When this happened, the client executed recovery (SETCLIENTID...) but did non query the server for a new lease_time. So the problem was persistent even after the first failure. As an experiment, I've also restarted a server with the lease time decrement from 90 to 45 seconds, but the grace period fixed to 90 seconds. Now the client got NFS4ERR_STALE_CLIENTID but still did not query the server for a new lease_time and continued to send RENEWs in 60 second intervals. Add flags `--lease-time 90 and --grace-time 90` to nsfd to avoid upgrade complexity. Also change existing option `-N 3` to long form `--no-nfs-version 3` for readability. A `systemctl daemon-reload && systemctl restart nfsd` puts the new value into place as can be verified by `cat /proc/fs/nfsd/nfsv4leasetime`.
- Loading branch information