Description
On a DGX Station GB300 running DGX OS 7.5, a GPU-enabled OpenShell 0.0.85
sandbox can load the injected driver library and call cuDriverGetVersion, but
cuInit(0) segfaults. The same library and GPU pass on the host and in ordinary
Docker CDI containers, including as the sandbox UID/GID.
This blocks qualification of DGX OS 7.5 for the NemoClaw Station golden path.
The existing generic Ubuntu path remains the supported control.
Related: #1486
Environment
- Hardware: DGX Station GB300, ARM64
- OS: DGX OS
7.5.0-GB300ws-GB200ws / Ubuntu 24.04.4
- Kernel:
6.17.0-1014-nvidia-64k
- NVIDIA driver:
595.58.03
- Driver API:
cuDriverGetVersion=13020
- Docker:
29.2.1
- NVIDIA Container Toolkit:
1.19.0
- OpenShell:
0.0.85
- NemoClaw commit:
b47c81e0cc2b3dc22e07921167e48ad0a4ff7c1c
Reproduction
In a GPU-enabled OpenShell sandbox:
openshell sandbox exec -n my-assistant --no-tty -- \
python3 -c 'import ctypes; lib=ctypes.CDLL("libcuda.so.1"); rc=lib.cuInit(0); print(f"cuInit(0)={rc}")'
Observed during fresh onboarding and in a separate bounded diagnostic:
GPU proof passed: nvidia-smi when available
GPU proof passed: /proc/<pid>/task/<tid>/comm write
GPU proof inconclusive: cuInit(0) via libcuda.so.1
Segmentation fault (core dumped)
The isolated diagnostic produced:
sandbox_libcuda_load: loaded=libcuda.so.1, exit 0
sandbox_driver_version: cuDriverGetVersion=0,version=13020, exit 0
sandbox_cuda_init: no output, exit 1
Controls
All of the following passed with cuInit(0)=0:
- the DGX OS host;
- an ephemeral network-disabled Docker CDI container as root;
- the same CDI container as UID/GID
998:998;
- a current generic Ubuntu 24.04 ARM64 control rebuilt with the same NemoClaw
commit and OpenShell 0.0.85 (kernel 6.8.0-124-generic, driver 610.43.02).
The DGX OS host and sandbox used the same injected driver file:
sha256 ba8d543fee78b6e7932592d55abba877a0df226d48631e746bd50beb05916dac
/usr/lib/aarch64-linux-gnu/libcuda.so.595.58.03
The managed vLLM container, direct inference, routed agent inference, exact
response, tool-use artifact, restart/reuse, and ECC checks all passed. This
narrows the failure to the OpenShell sandbox boundary on the DGX OS
kernel/driver stack; the current evidence does not isolate kernel versus driver.
Expected Behavior
A GPU-enabled sandbox should complete cuInit(0) when the host and equivalent
plain CDI container pass. At minimum, the sandbox must fail deterministically
with an actionable diagnostic rather than continuing with CUDA marked
unverified after a segmentation fault.
Description
On a DGX Station GB300 running DGX OS 7.5, a GPU-enabled OpenShell 0.0.85
sandbox can load the injected driver library and call
cuDriverGetVersion, butcuInit(0)segfaults. The same library and GPU pass on the host and in ordinaryDocker CDI containers, including as the sandbox UID/GID.
This blocks qualification of DGX OS 7.5 for the NemoClaw Station golden path.
The existing generic Ubuntu path remains the supported control.
Related: #1486
Environment
7.5.0-GB300ws-GB200ws/ Ubuntu 24.04.46.17.0-1014-nvidia-64k595.58.03cuDriverGetVersion=1302029.2.11.19.00.0.85b47c81e0cc2b3dc22e07921167e48ad0a4ff7c1cReproduction
In a GPU-enabled OpenShell sandbox:
Observed during fresh onboarding and in a separate bounded diagnostic:
The isolated diagnostic produced:
Controls
All of the following passed with
cuInit(0)=0:998:998;commit and OpenShell 0.0.85 (kernel
6.8.0-124-generic, driver610.43.02).The DGX OS host and sandbox used the same injected driver file:
The managed vLLM container, direct inference, routed agent inference, exact
response, tool-use artifact, restart/reuse, and ECC checks all passed. This
narrows the failure to the OpenShell sandbox boundary on the DGX OS
kernel/driver stack; the current evidence does not isolate kernel versus driver.
Expected Behavior
A GPU-enabled sandbox should complete
cuInit(0)when the host and equivalentplain CDI container pass. At minimum, the sandbox must fail deterministically
with an actionable diagnostic rather than continuing with CUDA marked
unverified after a segmentation fault.