Network File System (NFS) is a distributed file system protocol for sharing files between servers over a network. NFSv4.x introduces improvements over earlier versions, but has a few known issues on Alibaba Cloud Linux instances. This page describes those issues and how to resolve them.
Quick compatibility check
Before reading further, verify your kernel version against the table below. If your kernel meets the minimum requirement, you are not affected by the issue in that row.
| Issue | Affected NFS versions | Fixed in kernel |
|---|---|---|
| Delegation conflict | NFSv4.0 | N/A — disable delegation instead |
| Application fails to exit | NFSv4.1, NFSv4.2 | 4.19.30-10.al7 (Alibaba Cloud Linux 2) |
Delegation conflict
Symptoms
Clients experience conflicts when accessing the same file or directory concurrently over NFSv4.0.
Background
Delegation is an NFSv4.0 feature that lets the server temporarily hand off management of a file or directory to a client, so the client can read and write without checking back with the server on every operation. When multiple clients hold conflicting delegations, access errors occur.
For more information, see Delegation in NFS Version 4.
Solution
Disable the delegation feature on the server side. For instructions, see How to select different versions of NFS on a server.
Application fails to exit
Symptoms
On NFSv4.1 or NFSv4.2, a process hangs and does not exit as expected.
Cause
If an application issues asynchronous I/O (AIO) requests for a file and closes the file descriptor before all I/O operations complete, a livelock may be triggered. The livelock prevents the process from exiting.
This issue is unlikely to occur in practice.
Affected kernel versions
Alibaba Cloud Linux 2 kernels earlier than 4.19.30-10.al7.
Solution
Upgrade the kernel to 4.19.30-10.al7 or later.
Kernel upgrades may cause a system boot failure. Before proceeding, create a snapshot or custom image to back up your data. See Create a disk snapshot or Create a custom image from an instance.
Upgrade the kernel.
sudo yum update kernel -yRestart the instance.