Repository navigation
Conversation
KitLauncher._create_app removed every module matching .*lab.* from sys.modules while SimulationApp started, so other threads could not pickle from or import those modules, and then reset sys.stdout to sys.__stdout__. The purge dates from when Isaac Lab's packages were named omni.isaac.lab and tripped SimulationApp's check for omni and pxr modules. The isaaclab packages don't match that check, so drop it, and restore the previous sys.stdout in a finally block. Fixes isaac-sim#8812 Signed-off-by: Mark Finean <33692727+mfinean@users.noreply.github.com>
mfinean
requested review from
AntoineRichard,
kellyguo11 and
ooctipus
as code owners
October 25, 2026 17:25
Contributor
[Medium impact] The PR appears safe to merge; no actionable issues were found. Summary
No actionable issues were found. Tests were inspected, not run. Reviews (1) · Last reviewed commit: "Stop removing modules from sys.modules w..." · Reviewed by Greptile |
Contributor
There was a problem hiding this comment.
Isaac Lab Review Bot
All reviewed code categories look good.
- PR description: The body matches the diff; change “modules stay” to “the Kit launcher module stays,” since the test checks one module, while the broader behavior is supported by manual validation.
- Design and architecture: Architecture looks good.
- Scope and over-engineering: No over-engineering issues.
- API: API changes look good.
- Compatibility and deprecation: No breaking changes identified.
- Implementation: Implementation looks good.
- Style consistency: Style consistency looks good.
- Test quality: Test quality looks good.
No blocking issues. No inline findings.
Automated review; human maintainers own approval decisions.
AntoineRichard
approved these changes
Oct 26, 2026
AntoineRichard
left a comment
Collaborator
There was a problem hiding this comment.
Thanks a lot @mfinean for catching this. I agree, it should be fine.
Collaborator
|
run-ci |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
KitLauncher._create_appremoved every module matching.*lab.*fromsys.moduleswhileSimulationAppstarted. In that window, other threads can't pickle from those modules, and importing one creates a second copy. It also resetsys.stdouttosys.__stdout__afterwards, dropping any redirect set up before the launch.The purge dates from when Isaac Lab's packages were named
omni.isaac.laband trippedSimulationApp's warning aboutomni*andpxr*modules loaded before startup. Theisaaclabpackages don't match that check, so this removes it, and restores the previoussys.stdoutin afinallyblock.Fixes #8812
Type of change
Testing
test_kit_launcher.pystubsSimulationAppand checks that modules stay insys.modulesduring startup and thatsys.stdoutis restored when startup fails. It fails onmain.launch_simulationon Isaac Sim 6.2, twice onmainand twice with this change. The console output was the same apart from timings, and the module warning listed only a dummyomni*module I imported on purpose. Pickling from a*lab*module on another thread during startup failed onmainand worked with this change.Checklist
pre-commitchecks withuv run isaaclab --formatsource/<pkg>/changelog.d/for every touched package (do not editCHANGELOG.rstor bump package versions — CI handles that)CONTRIBUTORS.mdor my name already exists there