Content referenced or recorded while handling faults, continuously updated.
1. XID Error Events
XID is NVIDIA’s error code. You can retrieve it with the command:
| |
or
| |
The XID lets you locate the fault. Below are some common XID events.
| XID | Description |
|---|---|
| 13 | Graphics Engine Exception. Usually an array out-of-bounds or instruction error, rarely a hardware problem. |
| 31 | GPU memory page fault. Usually an illegal address access by the application, very rarely a driver or hardware problem. |
| 43 | GPU stopped processing. Usually an error in the user application itself rather than a hardware problem. |
| 45 | Preemptive cleanup, due to previous errors – Most likely to see when running multiple cuda applications and hitting a DBE. Usually the GPU application exits because the user quit manually or due to another fault (hardware, resource limits, etc.). Xid 45 is only a consequence, and log analysis is usually required. |
| 68 | NVDEC0 Exception. Usually a hardware or driver problem. |
| 32 | Invalid or corrupted push buffer stream. This event is reported by the DMA controller on the PCIE bus that manages communication between the NVIDIA driver and the GPU; usually caused by a PCI quality problem rather than by the user program. |
| 38 | Driver firmware error. Usually a driver firmware error rather than a hardware problem. |
| 48 | Double Bit ECC Error (DBE). When an uncorrectable error occurs on the GPU, an Xid48 event is reported. This error is also fed back to the user application at the same time. Usually the GPU needs to be reset or the node rebooted to clear this error. |
| 61 | Internal micro-controller breakpoint/warning. The GPU’s internal engine has stopped working, and customer workloads are already affected. |
| 62 | Internal micro-controller halt. Similar trigger scenario to Xid61. |
| 63 | ECC page retirement or row remapping recording event. When an application encounters a GPU memory hardware error, NVIDIA’s self-correction mechanism retires or remaps the faulty memory region; the retirement and remapped information must be recorded to infoROM to take effect permanently. Volt architecture: recording the ECC page retirement event to infoROM succeeded. Ampere architecture: recording the row remapping event to infoROM succeeded |
| 64 | ECC page retirement or row remapper recording failure. Similar trigger scenario to Xid63, except that Xid63 means the retirement and remapped information was successfully recorded to infoROM, while Xid64 means that recording operation failed. |
| 74 | NVLINK Error. An Xid produced by an NVLink hardware error; receiving this event means the GPU already has a serious hardware fault and needs to be taken offline for repair. |
| 79 | GPU has fallen off the bus. The GPU hardware is detected as having dropped off the card and can no longer be detected on the bus; receiving this event means the GPU already has a serious hardware fault and needs to be taken offline for repair. |
| 92 | High single-bit ECC error rate. Hardware or driver fault. |
| 94 | Contained ECC error. When an application encounters an uncorrectable GPU memory ECC error, NVIDIA’s error containment mechanism tries to contain the error to the application that hit the hardware fault, rather than letting the error affect all applications on the GPU. When the containment mechanism successfully contains the error, an Xid 94 event is generated, affecting only the application that encountered the uncorrectable ECC error. |
| 95 | Uncontained ECC error. Similar trigger scenario to Xid94, except that Xid94 means containment succeeded while Xid95 means containment failed, which indicates that all applications running on that GPU have been affected. |
For details, see https://docs.nvidia.com/deploy/xid-errors/index.html
2. GPU Overheating
Normally the GPU temperature should be below 85°C; above that, clock throttling and performance degradation occur. Running the following command shows the GPU index and temperature directly.
| |
Solution:
Apart from physical measures, from a purely software perspective you can simply kill the applications on the GPUs whose temperature exceeds the threshold, so that they move to other GPUs.
3. Card Loss After Reboot, nvswitch Errors
| |
or
| |
You see NVlink and NVSwitch errors.
Or nvidia-smi cannot find a device handle, with an Unknown Error.
Or there are fewer cards after a reboot.
Solution:
Enable nvidia-persistenced persistence mode so the driver stays loaded, which can greatly alleviate this problem.
4. nvidia-smi in a Pod Reports Function not Found
Running the command inside a Pod fails:
| |
This is because the CUDA version inside the Pod is too old and does not match the CUDA version on the node.
Solution:
Add the environment variable and restart the application.
| |
5. GPU Memory Cannot Be Released
Run the command:
| |
You will see that no process is using the GPU, yet a large amount of GPU memory is still occupied.
At the same time you may notice a batch of unkillable zombie processes.
| |
Solution:
Try restarting Kubelet, then Docker, then the host in turn; the GPU memory resources will be released.
6. Docker Hangs, Node NotReady
In Kubelet you see PLEG is not healthy related error logs. There are no abnormal logs in Docker.
runc may have hung, because the default pipe size is only 64 MB, which is not enough for high-performance computing scenarios.
Solution:
Set it to 1GB; here the setting is 262144 * 4K = 1GB.
| |
7. df\ls Hangs, No Response
Inspect the hung process.
| |
Find the related mount point.
| |
Confirm that the directory is no longer usable.
| |
At this point it should hang with no response. This is usually caused by the remote service 1.1.1.1 no longer being reachable while the mounted client was not cleaned up.
Force unmount the directory.
| |
8. df and du Data Differ Sharply
Checking with df shows / is 86% used.
| |
But the usage counted by du is very small.
| |
The reason is that when large files were deleted, a program was still holding them open, so the kernel could not reclaim the space.
Solution:
- Find the files held by programs.
| |
- Delete the files held by programs.
| |
Another case is that the mount point became invalid, causing the mounted files to land on the host instead; in this case you need to unmount the mount point first and then delete the files under it.
9. Rebooting the Host with ipmitool
Rebooting the host with the reboot command only operates at the system level, and some hardware faults cannot be recovered.
| |
This is equivalent to a power-off reboot.
10. version mismatch
| |
| |
Solution:
Uninstall the nvidia driver and reinstall it.
| |
11. no free node
When using https://github.com/tkestack/gpu-manager to manage GPUs, note that the driver version must not be too high; for example, 535.183 is not compatible.
The compatible version we tested is 535.129.
With a higher-version driver, GPU memory cannot be reclaimed properly after allocation, so once the first allocation completes, new Pods fail to be created with a no free node error.
The root cause is that gpu-manager cannot obtain real-time GPU memory information.
If you hit this problem on a compatible version, try restarting kubelet to refresh the GPU memory information.
12. Enterprise JuiceFS Speed Fluctuates Sharply
After warm-up, access speed should be stable and fast, but if there are slow nodes in the P2P cache service node group, the access speed will drop in some places, dragging down the overall access speed.
You can enter the fluid worker pod.
| |
Inspect the connections between P2P cache service nodes.
| |
Check for slow nodes that do not meet expectations; removing the relevant nodes restores performance.
13. resolv.conf: no such file or directory
A Pod fails to start with the error:
| |
Solution:
| |
In KUBELET_KUBEADM_ARGS, change --resolv-conf=/etc/resolv.conf.
Then restart kubelet:
| |
14. kubelet Fails to Start After Upgrading Node CPU
Error message
| |
Solution:
| |
15. gpu-manager Fails to Start with can’t load container response data
Error message
| |
Sometimes it also reports an error like kubelet_internal_checkpoint not found.
Solution:
Try restarting Kubelet several times; if that still does not work, copy the /var/lib/kubelet/device-plugins/kubelet_internal_checkpoint file from another node to the current node.
The cause of the fault is a bug in GPU Manager that sometimes prevents the kubelet_internal_checkpoint file from being generated.
| |
16. cannot allocate unhealthy devices tencent.com/vcuda-core Prevents Pod Creation
gpu manager reports an error
| |
Solution:
| |
17. DCGM Reports Failed to watch metrics
Error message
| |
Solution:
Edit the dcgm-exporter DaemonSet and confirm the following Pod configuration is correct.
| |
In particular, for the capabilities configuration here, make sure SYS_ADMIN is granted; runAsUser: 0 alone is not enough.
18. PCI Cannot Detect the GPU
Run the command:
| |
This attempts to re-detect the PCI device, but it does not necessarily solve the problem, since it may be a hardware issue.
19. rpc client exit with 255 When Allocating Less Than a Whole Card
Error message
| |
Solution:
Add the environment variable
| |
The reason is that CUDA does not support allocating less than a whole card by default, and a GPU slicing component is required. If you are using GPU Manager, setting the above environment variable hijacks the allocation request.
20. Draining to Disable a Specific Faulty Card
- View the PCI location of the card
| |
The first column is the card index, the second is the card’s PCI location.
- Disable the specified GPU card
| |
-m 1 means drain state, -m 0 means turn off drain state. After the command completes, the card is invisible in nvidia-smi but visible in lspci.
- View the drain state of the card
| |
- Undrain all cards
| |
21. NCCL Cannot allocate memory
Error message, GPU memory cannot be allocated
misc/ibvwrap.cc:262 NCCL WARN Call to ibv_reg_mr failed with error Cannot allocate memory
Solution:
Add the IPC_LOCK capability to the Pod.
| |
22. Slow DNS or Node Network Unreachable
- Caused by NIC hardware checksum
The symptom is slow DNS resolution or an unreachable node network. Packet capture shows errors like the following:
| |
cksum 0xe0be (incorrect -> 0x6c4f) indicates a checksum error, which causes the network problem.
The solution is to turn off TSO and TX.
| |
The cause may be related to the NIC not supporting checksum computation for some type of packet in the upper-layer Overlay network.
Moreover, so far this has only been encountered in mellanox environments; you can also try upgrading the relevant firmware version.
You can also try systemctl restart networking.service to restart the network service.
- Network component anomalies caused by multiple NICs
| |
23. MPI No such file or directory
Set the environment variables
| |
24. CUDA Error 802
| |
Encountered on A100 and H20; the nvidia-fabricmanager service was not installed, so initialization failed. After installing it, if the error persists, try rebooting the machine.
25. IB NIC Down
| |
Solution:
Check the logs
| |
This situation is usually a hardware problem, and the network cable needs to be checked.
Of course, you can also try bringing the NIC up directly.
| |
26. smi Hangs When Installing the GPU Driver
There are several possibilities:
- The installed driver version does not meet the graphics card’s minimum requirement
- The installed driver version does not match the current card model
- The system kernel is incompatible with the driver, and the kernel needs to be upgraded
27. Disk Expansion
Inference nodes do not need an extra data disk; a 2T system disk can be used directly. If you did not start with a large system disk, you need to expand the system disk in the cloud vendor’s console.
Then run the following commands to expand the system disk.
- View disk information
| |
- Extend the partition size
| |
For example, growpart /dev/vda 2
- Extend the filesystem size
If the partition is ext4, use the resize2fs command.
| |
For example, resize2fs /dev/vda2
If the partition is xfs, use the xfs_growfs command.
| |
For example, xfs_growfs /dev/vda2
28. Fabric Manager Operation not permitted
The common problem with Frabric Manager is a driver version mismatch. But the following error has also been encountered.
| |
This appeared after upgrading the GPU driver and Fabric Manager versions. According to the provider, the cause is different modules, and some machines cannot use a high-version driver, so it had to be downgraded to version 535.
29. nvidia-smi Hangs
After running some tasks involving multi-GPU communication, zombie processes appear that cannot be released.
| |
Upgrading the driver version may solve it, but on some devices fabric fails to start after the driver upgrade, so the device can only be rebooted first.
30. Clearing ECC Counters
- Cumulative ECC error count
| |
- Volatile ECC error count
| |
If the clearing process reports errors, you can stop all processes occupying the card and reset the card.
| |
31. Accessing a Path Overlaid by a Mounted Disk
A mounted disk overlays the system data path, making the previous system data path unusable.
| |
If the data disk is mounted under the /data directory, then /mnt/rootfs/data is the original system data path.
32. Some Pods on CPU Nodes Fail to Start
GPU clusters usually also include some CPU nodes. On CPU nodes, some Pods fail to start with the following error:
| |
The cause is that the CPU nodes use the GPU nodes’ system image, and the Containerd configuration file contains GPU-related configuration. This error is triggered when using the Transformers library in a Pod.
33. Timeout from GSP
The error Timeout waiting for RPC from GSP! appears, possibly because GSP (GPU Shared Protocol) failed to initialize correctly; you can try disabling GSP.
GSP’s purpose is to move the GPU management logic from the CPU kernel driver into the GPU itself.
| |
After rebooting the machine, check whether it took effect.
| |
If the output is 0, GSP has been disabled.
34. RDMA Cannot allocate memory
| |
Solution: adjust LimitMEMLOCK.
| |
Or use sed
| |
Add the following alongside the other Limit settings:
| |
- Restart containerd
| |
35. unknown CDI devices
Error message, CDI devices cannot be injected
| |
A GPU image is running on a CPU node configured with the NVIDIA Runtime; the containerd configuration file needs to be regenerated and changed to runc.
36. doesn’t have valid Grid license
Error
| |
If the machine was rebooted recently, check the status of nvidia-gridd; registration may have failed at startup.
| |
A reboot usually fixes it.
| |
37. Node Driver Suddenly Reports version mismatch
| |
- Check the update history of the driver package
| |
| |
- Disable automatic updates to prevent another automatic upgrade next time
| |
- Hot fix
| |
