Skip to content

fix(multimodal): make nixl imports lazy#11006

Draft
rmccorm4 wants to merge 1 commit into
release/1.2.1from
rmccormick/cherrypick-10737-nixl-lazy-import
Draft

fix(multimodal): make nixl imports lazy#11006
rmccorm4 wants to merge 1 commit into
release/1.2.1from
rmccormick/cherrypick-10737-nixl-lazy-import

Conversation

@rmccorm4

Copy link
Copy Markdown
Contributor

Summary

Original PR

Validation

  • uv build --wheel
  • cd lib/bindings/python && uv build --wheel
  • Installed the local root/runtime wheels into a clean venv where importlib.util.find_spec("nixl") is None.
  • Verified installed embedding_transfer.py loads without importing nixl or dynamo.nixl_connect.
  • Verified LocalEmbeddingSender() constructs without NIXL.
  • Verified NixlWriteEmbeddingSender() raises the expected explicit RuntimeError when NIXL is absent.
  • Verified no unraisable __del__ exception after the failed NIXL constructor.

Apply the lazy NIXL import patch from PR #10737 to release/1.2.1.

Defer nixl._api and dynamo.nixl_connect imports until NIXL transfer classes are instantiated, so non-NIXL startup paths do not fail at module import time.

Signed-off-by: Ryan McCormick <rmccormick@nvidia.com>
@datadog-official

datadog-official Bot commented Jun 26, 2026

Copy link
Copy Markdown

Pipelines

⚠️ Warnings

🚦 6 Pipeline jobs failed

Docs link check | lychee   View in Datadog   GitHub Actions

PR | backend-status-check   View in Datadog   GitHub Actions

PR | sglang-runtime / Test cuda12.9, amd64   View in Datadog   GitHub Actions

View all 6 failed jobs.

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

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.

1 participant