Skip to content

fix(container): make vLLM FlashInfer cubin dirs writable (#12770) - #12976

Merged
pvijayakrish merged 1 commit into
release/1.4.0from
anants/cp-12770
Aug 11, 2026
Merged

fix(container): make vLLM FlashInfer cubin dirs writable (#12770)#12976
pvijayakrish merged 1 commit into
release/1.4.0from
anants/cp-12770

Conversation

@nv-anants

@nv-anants nv-anants commented Aug 10, 2026

Copy link
Copy Markdown
Member

add #12770 to release

closes: OPS-8074


Open in Devin Review

Signed-off-by: Brian Westphal <bwestphal@nvidia.com>
Co-authored-by: Anant Sharma <anants@nvidia.com>

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

Open in Devin Review

Comment on lines +95 to +101
# FlashInfer creates package-local cubin symlinks at runtime. Grant group 0
# write access so arbitrary OpenShift UIDs can initialize the cubin cache.
RUN SITE_PACKAGES="$(python3 -c 'import site; print(site.getsitepackages()[0])')" && \
CUBINS_DIR="$SITE_PACKAGES/flashinfer_cubin/cubins" && \
if [ -d "$CUBINS_DIR" ]; then \
find "$CUBINS_DIR" -type d -exec chmod g+rwx {} + ; \
fi

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Cubin permission fix runs before the vLLM-Omni pip install that may (re)install FlashInfer packages

This chmod layer is placed immediately after the user-creation layer, but the vLLM runtime later runs install_vllm_omni.sh (container/templates/vllm_runtime.Dockerfile:216-227, script at container/deps/vllm/install_vllm_omni.sh). The protected-constraints list pins flashinfer-python but not flashinfer-cubin (container/deps/vllm/protected_packages.txt). If flashinfer_cubin is absent in the base vllm/vllm-openai image and only pulled in by the omni solve — or if the omni solve reinstalls/upgrades it — the if [ -d "$CUBINS_DIR" ] guard silently makes the chmod a no-op, or the freshly-unpacked 755 root-owned directories overwrite the group-writable permissions, so arbitrary OpenShift UIDs still cannot initialize the cubin cache. The sglang template (container/templates/sglang_runtime.Dockerfile:38-42) has no such later FlashInfer-touching install, so copying the placement verbatim into the vLLM template is worth verifying against an actual built image (e.g. ls -ld $(python3 -c 'import site;print(site.getsitepackages()[0])')/flashinfer_cubin/cubins).

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@datadog-official

datadog-official Bot commented Aug 10, 2026

Copy link
Copy Markdown

🎯 Code Coverage (details)
Patch Coverage: 100.00%
Overall Coverage: 38.75% (-8.18%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: ff8e457 | Docs | Datadog PR Page | Give us feedback!

@pvijayakrish
pvijayakrish merged commit b05777f into release/1.4.0 Aug 11, 2026
101 of 102 checks passed
@pvijayakrish
pvijayakrish deleted the anants/cp-12770 branch August 11, 2026 00:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants