From 49f4891e3ec30f0dd46e5a9d980e8c7a2b764517 Mon Sep 17 00:00:00 2001 From: tzhouam Date: Wed, 8 Jul 2026 15:11:22 +0800 Subject: [PATCH] =?UTF-8?q?ci:=20fix=20libnvJitLink.so.13=20step=20?= =?UTF-8?q?=E2=80=94=20register=20torch-provided=20lib,=20drop=20bad=20pkg?= =?UTF-8?q?=20install?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dockerfile.ci build failed at the nvjitlink step: uv pip install --system "nvidia-cuda-nvjitlink-cu13" -> No solution found ... nvidia-cuda-nvjitlink-cu13 was not found in the registry That package name does not exist (spurious 'cuda-'; real wheel is nvidia-nvjitlink-cu13), and the install is redundant: the cu130 torch force-reinstall one step above already pulls nvidia-nvjitlink==13.0.88 into site-packages, which provides libnvJitLink.so.13. The step only needs to register that lib dir with ldconfig. Locate the already-installed .so.13 and ldconfig-register it; fall back to a correctly-named nvidia-nvjitlink-cu13 install only if torch deps did not bring it in. Co-Authored-By: Claude Opus 4.8 (1M context) --- docker/Dockerfile.ci | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/docker/Dockerfile.ci b/docker/Dockerfile.ci index 2768ae64c..542f12264 100644 --- a/docker/Dockerfile.ci +++ b/docker/Dockerfile.ci @@ -55,14 +55,20 @@ RUN uv pip install --system --force-reinstall \ "torch==2.11.0" "torchaudio==2.11.0" "torchvision==0.26.0" \ --torch-backend cu130 -# CUDA 13 JIT linker: libnvJitLink.so.13 ships only in the nvidia-cuda-nvjitlink-cu13 -# pip wheel (the v0.24.0 base image's /usr/local/cuda toolkit is CUDA 12, so the -# LD_LIBRARY_PATH above never resolves the .so.13). The cu130 torch/vllm wheels pull -# this package into site-packages, but its lib dir is not on the dynamic-loader path, -# so bitsandbytes / torch.compile worker subprocesses fail to dlopen it. Register the -# actual lib dir with ldconfig (system-wide, survives subprocess env resets). -RUN uv pip install --system "nvidia-cuda-nvjitlink-cu13" && \ - NVJITLINK_LIB="$(find / -name 'libnvJitLink.so.13*' 2>/dev/null | head -1)" && \ +# CUDA 13 JIT linker: libnvJitLink.so.13 is provided by the nvidia-nvjitlink +# package that the cu130 torch/vllm wheels above pull into site-packages (the +# v0.24.0 base image's /usr/local/cuda toolkit is CUDA 12, so the LD_LIBRARY_PATH +# above never resolves the .so.13). Its lib dir is not on the dynamic-loader path, +# so bitsandbytes / torch.compile worker subprocesses fail to dlopen it. Locate the +# already-installed lib and register its dir with ldconfig (system-wide, survives +# subprocess env resets). Only fall back to the pip wheel (correct name: +# nvidia-nvjitlink-cu13, NOT nvidia-cuda-nvjitlink-cu13, which does not exist) if +# the torch deps did not bring it in. +RUN NVJITLINK_LIB="$(find / -name 'libnvJitLink.so.13*' 2>/dev/null | head -1)" && \ + if [ -z "$NVJITLINK_LIB" ]; then \ + uv pip install --system "nvidia-nvjitlink-cu13" && \ + NVJITLINK_LIB="$(find / -name 'libnvJitLink.so.13*' 2>/dev/null | head -1)"; \ + fi && \ test -n "$NVJITLINK_LIB" && \ dirname "$NVJITLINK_LIB" > /etc/ld.so.conf.d/nvjitlink-cu13.conf && \ ldconfig && \