[Docs] Document CloudXR port 49100 conflict troubleshooting - #7457
Conversation
There was a problem hiding this comment.
Isaac Lab Review Bot
The troubleshooting note is appropriately scoped, but its heading uses unsupported nested reStructuredText markup, causing the literal backticks to appear in rendered documentation.
- Design and architecture: The note is placed alongside the CloudXR launch instructions where the port conflict would surface. No design or architecture changes are introduced.
- API: No public APIs, CLI options, configuration defaults, or source-package contracts are changed, so no API migration or package changelog update is required.
- Implementation: At line 352, an inline literal is nested inside bold markup. reStructuredText does not support nested inline markup, so the error token will not render as intended. Move the literal error name outside the bold span or use a plain bold lead-in.
Minor fixes needed. Posted 1 actionable finding inline.
Automated review; human maintainers own approval decisions.
|
|
||
| .. note:: | ||
|
|
||
| **``ERROR_STREAMSDK_PORT_UNAVAILABLE`` / port 49100 already in use.** The CloudXR runtime |
There was a problem hiding this comment.
🔵 Suggestion · Implementation — Nested inline literal inside bold will not render
reStructuredText does not support nested inline markup, so **ERROR_STREAMSDK_PORT_UNAVAILABLE / port 49100 already in use.** renders the double backticks as visible characters inside the bold lead-in. The adjacent note at line 342 uses the established pattern of a plain bold lead-in with literals in the body text. Move the error name outside the bold run so the rendered page matches surrounding notes.
Greptile SummaryThe PR documents how to diagnose and resolve CloudXR signaling-port conflicts.
Confidence Score: 4/5The PR is not yet safe to merge because its troubleshooting commands can terminate processes other than the stale CloudXR listener the user confirmed. The inspection step does not preserve a selected PID, and both termination commands independently expand every PID reported for TCP port 49100, leaving the previously reported unsafe-targeting behavior unresolved. Files Needing Attention: docs/source/how-to/cloudxr_teleoperation.rst Important Files Changed
Reviews (2): Last reviewed commit: "Address review feedback: fix nested RST ..." | Re-trigger Greptile |
| kill $(lsof -ti tcp:49100) # SIGTERM first | ||
| kill -9 $(lsof -ti tcp:49100) # only if it is still running |
There was a problem hiding this comment.
Kill commands retarget every process
If multiple processes have TCP sockets involving port 49100, each lsof -ti tcp:49100 invocation independently selects every matching PID rather than the listener the user inspected and confirmed, causing unrelated or newly selected processes to be terminated, including with SIGKILL.
|
run-ci |
|
Backported to |
## Description QA reported that CloudXR teleoperation (`isaaclab teleop run --xr`) failed with `Server::create failed: Result::ERROR_STREAMSDK_PORT_UNAVAILABLE` because TCP port 49100 (used for CloudXR.js WebRTC signaling) was already bound by a leftover CloudXR runtime process. Killing the stale process resolved the issue, and QA requested a documentation note so future users can self-diagnose this without filing a ticket. This PR adds a "Known Issues" entry to the CloudXR teleoperation guide describing the error, how to check which process is holding port 49100, and how to free it or select a different port via `NV_CXR_SERVER_PORT`. Fixes # (issue) ## Type of change - Documentation update ## Release backport - [x] <!-- backport-active-release --> Backport this pull request to the active release branch after it merges into `develop` ## Checklist - [x] I have read and understood the [contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html) - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format` - [x] I have made corresponding changes to the documentation - [x] 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 (cherry picked from commit b75dec7)
Description
QA reported that CloudXR teleoperation (
isaaclab teleop run --xr) failed withServer::create failed: Result::ERROR_STREAMSDK_PORT_UNAVAILABLEbecause TCP port49100 (used for CloudXR.js WebRTC signaling) was already bound by a leftover CloudXR
runtime process. Killing the stale process resolved the issue, and QA requested a
documentation note so future users can self-diagnose this without filing a ticket.
This PR adds a "Known Issues" entry to the CloudXR teleoperation guide describing the
error, how to check which process is holding port 49100, and how to free it or select
a different port via
NV_CXR_SERVER_PORT.Fixes # (issue)
Type of change
Release backport
Backport this pull request to the active release branch after it merges into
developChecklist
pre-commitchecks with./isaaclab.sh --formatconfig/extension.tomlfileCONTRIBUTORS.mdor my name already exists there