Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Changed
^^^^^^^

* **Breaking:** Bumped the kit-less ``usd-core`` pin from ``>=25.11,<26.0`` to
``>=26.5,<27.0`` (OpenUSD 26.05 ABI). OpenUSD 26.05 includes the fix for a
multithreaded crash in ``UsdPhysicsParsingUtility`` that could corrupt the heap
when parsing a single rigid body with many mesh colliders beneath it
(OpenUSD PR #4002 / commit ``060715f``). Versions ``< 26.5`` race during USD
physics parsing and can abort with ``malloc_consolidate(): invalid chunk size``
/ ``double free`` before the first simulation step.
2 changes: 1 addition & 1 deletion source/isaaclab/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ dependencies = [
"pin-pink==3.1.0 ; platform_system == 'Linux' and platform_machine in 'x86_64 AMD64 aarch64 arm64'",
"daqp==0.8.5 ; platform_system == 'Linux' and platform_machine in 'x86_64 AMD64 aarch64 arm64'",
# OpenUSD (kit-less mode)
"usd-core>=25.11,<26.0 ; platform_machine in 'x86_64 AMD64'",
"usd-core>=26.5,<27.0 ; platform_machine in 'x86_64 AMD64'",
"usd-exchange>=2.2 ; platform_machine in 'x86_64 AMD64 aarch64 arm64'",
# avoid broken hf-xet pre-release cached on NVIDIA Artifactory
"hf-xet>=1.4.1,<2.0.0 ; platform_machine in 'x86_64 AMD64 aarch64 arm64'",
Expand Down
12 changes: 9 additions & 3 deletions source/isaaclab/test/cli/test_source_package_metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,19 @@ def _repo_root() -> Path:
raise RuntimeError("Could not find Isaac Lab repository root.")


def test_isaaclab_usd_core_pin_stays_on_isaacsim_compatible_usd25_abi():
"""The kit-less USD package must stay on the Isaac Sim compatible USD 25 ABI."""
def test_isaaclab_usd_core_pin_includes_multithreaded_collider_crash_fix():
"""The kit-less USD package must include the OpenUSD 26.05 fix for the multithreaded
UsdPhysicsParsingUtility crash (one rigid body with many mesh colliders).

See OpenUSD PR #4002 / commit 060715f ("[usdPhysics] fix for a multithreaded crash if
one rigidbody has multiple colliders beneath"), first released in OpenUSD 26.05
(usd-core 26.5). Versions < 26.5 race and can corrupt the heap during USD physics parsing.
"""
with (_repo_root() / "source/isaaclab/pyproject.toml").open("rb") as f:
pyproject = tomllib.load(f)

usd_core_dependencies = [
dependency for dependency in pyproject["project"]["dependencies"] if dependency.startswith("usd-core")
]

assert usd_core_dependencies == ["usd-core>=25.11,<26.0 ; platform_machine in 'x86_64 AMD64'"]
assert usd_core_dependencies == ["usd-core>=26.5,<27.0 ; platform_machine in 'x86_64 AMD64'"]
Loading