Skip to content

Bump usd-core dependency to 26.05 to fix USD physics crash#6521

Open
mataylor-nvidia wants to merge 22 commits into
isaac-sim:developfrom
mataylor-nvidia:mataylor/bump-usd-26.05
Open

Bump usd-core dependency to 26.05 to fix USD physics crash#6521
mataylor-nvidia wants to merge 22 commits into
isaac-sim:developfrom
mataylor-nvidia:mataylor/bump-usd-26.05

Conversation

@mataylor-nvidia

@mataylor-nvidia mataylor-nvidia commented Jul 14, 2026

Copy link
Copy Markdown

Resolves a fatal crash in libusd_ms triggered by LoadUsdPhysicsFromRange, caused by ABI incompatibility in the 25.11 USD library (nvbugspro #6441062).

Note this fix will work for kitless, but kit brings it's own USD

Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.
List any dependencies that are required for this change.

Fixes # (OMPE-100515)

Type of change

  • Bug fix (non-breaking change which fixes an issue)

Screenshots

Please attach before and after screenshots of the change if applicable.

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I have updated the changelog and the corresponding version in the extension's config/extension.toml file
  • I have added my name to the CONTRIBUTORS.md or my name already exists there
Resolves a fatal crash in libusd_ms triggered by LoadUsdPhysicsFromRange,
caused by ABI incompatibility in the 25.11 USD library (nvbugspro #6441062).
@github-actions github-actions Bot added isaac-lab Related to Isaac Lab team infrastructure labels Jul 14, 2026
@mataylor-nvidia

mataylor-nvidia commented Jul 14, 2026

Copy link
Copy Markdown
Author

The ovphysx_manager.py comment referencing 25.11 was left unchanged — it describes the version mismatch between IsaacSim's bundled pxr and ovphysx's internal check, which is a separate dependency from the usd-core PyPI pin.

@classmethod
    def _construct_physx(cls, ovphysx_device: str, gpu_index: int) -> None:
        """Bootstrap the ``ovphysx`` wheel and create the :class:`ovphysx.PhysX` instance.

        Runs once per process.  Configures worker threads, registers the
        process-exit ``os._exit(0)`` handler, and stores the result on
        ``cls._physx``.  See HACK on :meth:`_release_physx` for why the
        instance must outlive every individual :class:`SimulationContext`.
        """
        # HACK (temporary): hide pxr from sys.modules during ovphysx bootstrap.
        # IsaacSim's pxr reports version 0.25.5 (pip convention) while ovphysx
        # expects 25.11 (OpenUSD release convention).  Hiding pxr causes
        # ovphysx.check_usd_compatibility() to skip the Python-side version
        # check.  This should go away once ovphysx ships a namespaced USD
        # copy with isolated symbols (same "import pxr" API, no collision).
@greptile-apps

greptile-apps Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR updates the kitless USD dependency to the USD 26 line. The main changes are:

  • Bumps the x86_64 usd-core range to >=26.05,<27.0.
  • Adds launcher setup for omni.usd.libs so its pxr package and native libraries can take precedence.
  • Updates USD version expectations in metadata and benchmark tests.
  • Adds a changelog entry for the dependency bump and crash fix.

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.

Important Files Changed

Filename Overview
pyproject.toml Updates the x86_64 usd-core dependency range to the USD 26 line.
isaaclab.sh Adds POSIX launcher setup for omni.usd.libs path precedence and guarded pxr promotion.
isaaclab.bat Adds Windows launcher setup for omni.usd.libs path precedence and guarded pxr promotion.
source/isaaclab/test/benchmark/test_capture.py Updates the benchmark version fixture and assertion to expect USD 26.
source/isaaclab/test/cli/test_source_package_metadata.py Updates the static package metadata test to require the USD 26 dependency range.

Reviews (10): Last reviewed commit: "Surface read-only pxr promotion failure ..." | Re-trigger Greptile

Comment thread pyproject.toml
Comment thread pyproject.toml
Update the hardcoded usd_core_version fixture value to 26.05 to match
the dependency pin bumped in the previous commit.
@pbarejko pbarejko requested a review from kellyguo11 July 14, 2026 18:00
…nments

The previous fix uninstalled usd-core when omni.usd.libs was detected, which
removed pxr from sys.path entirely. OV tests run via pytest without Kit
startup, so omni.usd.libs pxr is never loaded by the extension system,
causing ModuleNotFoundError: No module named 'pxr'.

Replace _maybe_uninstall_kitless_pxr with _maybe_configure_ov_pxr, which
installs a .pth file in site-packages instead. The .pth file prepends
omni.usd.libs to sys.path at Python startup, ensuring the NVIDIA-patched
pxr (which removes the UsdVol ParticleField alias) is found before usd-core.
usd-core stays installed as a fallback for kit-less environments.
Comment thread isaaclab.sh
Comment thread isaaclab.sh
Comment thread tools/setup_usd_libs.py Outdated
Comment thread isaaclab.sh Outdated
Comment thread isaaclab.sh Outdated
Comment thread isaaclab.bat Outdated
Comment thread tools/setup_usd_libs.py Outdated
Comment thread isaaclab.sh Outdated
Comment thread isaaclab.sh Outdated
Comment thread isaaclab.bat Outdated
@mataylor-nvidia

Copy link
Copy Markdown
Author

@greptile review

Comment thread isaaclab.sh Outdated
Comment thread isaaclab.bat Outdated
@mataylor-nvidia

Copy link
Copy Markdown
Author

@greptile review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infrastructure isaac-lab Related to Isaac Lab team

1 participant