Skip to content

[Tasks] Fix MJWarp line-search overflow in lift tasks - #7942

Open
StafaH wants to merge 1 commit into
isaac-sim:developfrom
StafaH:fix/mjwarp-linesearch-overflow
Open

StafaH wants to merge 1 commit into
isaac-sim:developfrom
StafaH:fix/mjwarp-linesearch-overflow

Conversation

@StafaH

@StafaH StafaH commented Sep 22, 2026

Copy link
Copy Markdown
Collaborator

Description

MuJoCo Warp now reports each world that exhausts its iterative line-search budget. The lift-task overrides of 15 and 20 iterations routinely hit this limit, causing thousands of device-side prints and significantly reducing simulation throughput.

This change raises the MJWarp line-search ceiling to the maintained default of 50 for rigid, soft-body, cloth, and cable lift configurations. Iterative line search exits when it converges, so environments that need fewer iterations do not execute the full ceiling.

A fixed-seed sweep of Kuka-Allegro found that 22 iterations still overflowed while 23 did not for that sample. The value 50 provides headroom for randomized contact states and trained-policy trajectories. A broader core-task audit also reproduced 2,213 warnings in the cloth task and 2,003 warnings in the cable task over 64 random-action steps at the old value of 20.

Upstream warning change: google-deepmind/mujoco_warp@283e05e

Type of change

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

Release backport

  • Backport this pull request to the active release branch after it merges into develop

Screenshots

Not applicable.

Validation

  • Focused lift configuration tests: 9 passed.
  • Formatting and lint hooks passed across the clean worktree.
  • Changelog validation passed against upstream/develop.
  • Kuka-Allegro: zero line-search or solver-limit warnings with 4,096 environments and in a 64-environment random-action rollout.
  • Soft-body, cloth, and cable lift tasks: zero line-search or solver-limit warnings in 64-environment, 64-step random-action rollouts.
  • One representative task per unique core MJWarp physics configuration was smoke-tested; no remaining line-search or solver-limit warnings were observed.

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks
  • Documentation is unchanged; a changelog fragment is included
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I have added a changelog fragment under source/isaaclab_tasks/changelog.d
  • My name is already present in CONTRIBUTORS.md

@StafaH
StafaH requested a review from a team September 22, 2026 05:27
@github-actions github-actions Bot added bug Something isn't working isaac-lab Related to Isaac Lab team labels Sep 22, 2026
@StafaH StafaH changed the title Fix MJWarp line-search overflow in lift tasks [Tasks] Fix MJWarp line-search overflow in lift tasks Sep 22, 2026
@StafaH

StafaH commented Sep 22, 2026

Copy link
Copy Markdown
Collaborator Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 22, 2026

@isaaclab-review-bot isaaclab-review-bot 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.

Isaac Lab Review Bot

The PR consistently raises the MJWarp line-search ceiling from 15/20 to 50 across the base rigid lift preset and the soft-body, cloth, and cable coupled presets, with a corresponding Isaac Lab Tasks changelog fragment.

  • Design and architecture: The change remains within the existing PresetCfg and MJWarpSolverCfg layering. It updates only the rigid MJWarp solver entries while leaving coupled VBD solvers, preset ownership, default selections, and PhysX configurations unchanged.
  • API: No public symbols, config field names, types, exports, or registrations change. The existing ls_iterations field is retuned, and the user-visible change is documented through the required package changelog fragment.
  • Implementation: The four affected lift configurations now use a consistent ceiling of 50. Because line search may exit before reaching the ceiling, the principal residual tradeoff is increased worst-case solver work in non-converging states; the stated focused and rollout validation addresses the targeted warning and throughput scenario, though no automated regression test was added.

No blocking issues. No inline issue met the actionable-evidence threshold; the assessment above records the review feedback.

Automated review; human maintainers own approval decisions.

@greptile-apps

greptile-apps Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 4/5

The core configuration changes appear safe to merge, with a non-blocking consistency gap in the registered contrib custom-coupling lift task.

Findings

  1. P2 Derived preset keeps old limit

Summary

This PR raises the MJWarp line-search ceiling from 15 or 20 iterations to the maintained default of 50 across the core rigid, soft-body, cloth, and cable lift configurations.

  • Aligns core lift configurations with the solver's maintained default.
  • Reduces line-search budget exhaustion and associated device-side warning output.
  • Adds a changelog entry describing the performance-oriented fix.
  • Leaves the registered contrib custom-coupling soft-lift preset at the previous 20-iteration ceiling.

Reviews (1) · Last reviewed commit: "Increase MJWarp line-search limits for l..."

solver_cfg=MJWarpSolverCfg(
cone="elliptic",
ls_iterations=20,
ls_iterations=50,

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.

P2 Derived preset keeps old limit

The registered custom-coupling soft-lift task derives from this configuration but replaces the updated preset with its own MJWarpSolverCfg(ls_iterations=20). Contact states requiring more than 20 line-search iterations can therefore still exhaust the budget and emit the warnings this change is intended to eliminate. Please align that lift variant with the new ceiling or document why it must retain the lower limit.

This branch has not been deployed

No deployments
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.

2 participants