Skip to content

fix(deps): bump usd-core to >=26.5 for multithreaded collider crash fix#6301

Open
pv-nvidia wants to merge 1 commit into
isaac-sim:developfrom
pv-nvidia:pv/usd-2605-fix
Open

fix(deps): bump usd-core to >=26.5 for multithreaded collider crash fix#6301
pv-nvidia wants to merge 1 commit into
isaac-sim:developfrom
pv-nvidia:pv/usd-2605-fix

Conversation

@pv-nvidia

Copy link
Copy Markdown
Contributor

Description

Bumps the kit-less usd-core pin from >=25.11,<26.0 to >=26.5,<27.0.

OpenUSD 26.05 fixes a race in UsdPhysicsParsingUtility
(LoadUsdPhysicsFromRange_FinalizeCollisionDescs) that corrupts the heap
(malloc_consolidate(): invalid chunk size / double free) when parsing a
single rigid body with many mesh colliders beneath it — e.g. the H2 robot on
the Newton tablecloth workload — before the first simulation step.

  • Fix: OpenUSD PR Isaac-Velocity-Flat-Spot-v0 #4002 / commit 060715f ("[usdPhysics] fix for a multithreaded
    crash if one rigidbody has multiple colliders beneath"), by Paul Molodowitch.
    First released in OpenUSD 26.05 (= usd-core 26.5). 26.03 was tagged 2 days
    before the fix, so it does not contain it.
  • Empirically verified: usd-core 25.11 / 26.3 crash; 26.5 clean (400
    multithreaded parses, 0 crashes). Interim workaround PXR_WORK_THREAD_LIMIT=1
    is not 100% reliable.

⚠️ Known blocker (this is a CI experiment / draft)

The previous <26.0 cap was added by @AntoineRichard in #6165 because the Isaac
Sim runtime stack loads USD 25.x internals
, so a kit-less usd-core 26.5 causes
an ABI mismatch. This PR therefore likely cannot pass install/smoke CI until
the Isaac Sim runtime's bundled OpenUSD is uplifted to ≥26.05 (or PR #4002 is
backported). Opened as a draft to surface exactly what CI does with the bump.

cc @AntoineRichard @kellyguo11 @ooctipus

Type of change

  • Bug fix (dependency / ABI)

Checklist

  • Updated the metadata guard test (test_source_package_metadata.py)
  • Added a changelog fragment
  • Pre-commit hooks pass

OpenUSD 26.05 fixes a race in UsdPhysicsParsingUtility that could corrupt
the heap (malloc_consolidate(): invalid chunk size / double free) when
parsing a single rigid body with many mesh colliders beneath it, before
the first simulation step (OpenUSD PR isaac-sim#4002 / commit 060715f).

Bumps the kit-less usd-core pin from >=25.11,<26.0 to >=26.5,<27.0 and
updates the metadata guard test (renamed from the USD 25 ABI assertion).
@github-actions github-actions Bot added bug Something isn't working isaac-lab Related to Isaac Lab team labels Jun 30, 2026
@greptile-apps

greptile-apps Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Bumps the kit-less usd-core dependency pin from >=25.11,<26.0 to >=26.5,<27.0 to pick up the OpenUSD 26.05 fix for a multithreaded heap-corruption crash in UsdPhysicsParsingUtility (OpenUSD PR #4002). The PR description explicitly flags that this bump is a known draft/experiment because the Isaac Sim runtime bundles USD 25.x, so installing usd-core 26.5 alongside it causes an ABI mismatch that will break CI until the runtime is uplifted.

  • pyproject.toml: single-line dependency version constraint change (usd-core, x86_64/AMD64 only).
  • test_source_package_metadata.py: test renamed and assertion updated to match the new pin exactly.
  • Changelog fragment added as .major.rst, correctly labelled Breaking.

Confidence Score: 4/5

Safe to merge as a draft experiment; the ABI mismatch with Isaac Sim's bundled USD 25.x is a self-documented blocker that will surface immediately in CI.

The change is minimal and internally consistent — pyproject.toml, the guard test, and the changelog all agree on the new range. The only material risk is the known ABI incompatibility between usd-core 26.x and the Isaac Sim runtime's bundled USD 25.x, which the PR author explicitly acknowledges and uses as the reason this is opened as a draft. No logic, data, or security issues were introduced by the three changed files themselves.

source/isaaclab/pyproject.toml — the version constraint is the single load-bearing line; confirm the upper bound <27.0 is intentional and won't need tightening once 27.x is released.

Important Files Changed

Filename Overview
source/isaaclab/pyproject.toml Bumps usd-core pin from >=25.11,<26.0 to >=26.5,<27.0 to include the OpenUSD 26.05 multithreaded physics parser crash fix; the author acknowledges this breaks ABI compatibility with the Isaac Sim runtime's bundled USD 25.x.
source/isaaclab/test/cli/test_source_package_metadata.py Test renamed and assertion updated to match the new usd-core pin; change is consistent with pyproject.toml.
source/isaaclab/changelog.d/pverswyvelen-usd-2605-collider-crash-fix.major.rst New changelog fragment accurately documenting the breaking version bump and the upstream OpenUSD crash it fixes.

Sequence Diagram

%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
    participant User as Kit-less install
    participant Pip as pip resolver
    participant USD as usd-core 26.5
    participant ISim as Isaac Sim runtime (USD 25.x)

    User->>Pip: install isaaclab[kit-less]
    Pip->>USD: "resolve usd-core>=26.5,<27.0"
    USD-->>Pip: usd-core 26.5 (OpenUSD 26.05 ABI)
    Pip-->>User: installed

    Note over ISim: Isaac Sim runtime bundles USD 25.x (unchanged)
    User->>ISim: launch with Isaac Sim
    ISim-->>User: ABI mismatch (26.x vs 25.x) - CI blocker acknowledged in PR

    User->>USD: parse USD physics (kit-less / standalone)
    USD-->>User: "thread-safe parse (OpenUSD PR #4002 fix present)"
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
    participant User as Kit-less install
    participant Pip as pip resolver
    participant USD as usd-core 26.5
    participant ISim as Isaac Sim runtime (USD 25.x)

    User->>Pip: install isaaclab[kit-less]
    Pip->>USD: "resolve usd-core>=26.5,<27.0"
    USD-->>Pip: usd-core 26.5 (OpenUSD 26.05 ABI)
    Pip-->>User: installed

    Note over ISim: Isaac Sim runtime bundles USD 25.x (unchanged)
    User->>ISim: launch with Isaac Sim
    ISim-->>User: ABI mismatch (26.x vs 25.x) - CI blocker acknowledged in PR

    User->>USD: parse USD physics (kit-less / standalone)
    USD-->>User: "thread-safe parse (OpenUSD PR #4002 fix present)"
Loading

Reviews (1): Last reviewed commit: "fix(deps): bump usd-core to >=26.5 for m..." | Re-trigger Greptile

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

Labels

bug Something isn't working isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant