Description
Environment
|
|
| Isaac Sim |
6.0.1 (lib_isaacSim_buildVersion 6.0.1-rc.7, Kit 110.1.2+production.326809) |
| OS |
Ubuntu 22.04.5 LTS, kernel 6.8.0-124-generic, X11 |
| GPU |
NVIDIA RTX A5500 (Ampere, 24 GB), driver 580.159.03, CUDA 13.0 |
| CPU / RAM |
Intel i7-14700K, 64 GB |
| ROS 2 |
Humble via isaacsim.ros2.bridge 5.1.2 with internal ROS libs (isaacsim.ros2.core 1.9.4), rmw_cyclonedds_cpp |
| Run mode |
Standalone SimulationApp Python script ({"headless": False}), physics 200 Hz (CPU device), rendering 25 fps |
Scene
A saved USD world containing the NVIDIA Spot asset
(.../Isaac/6.0/Isaac/Robots/BostonDynamics/spot/spot.usd) driven by
SpotFlatTerrainPolicy, with a custom sensor payload mounted on the robot:
- 2 cameras (640×480), each publishing rgb + depth (32FC1) + camera_info
through ROS2CameraHelper / ROS2CameraInfoHelper OmniGraph nodes;
- 1 RTX lidar based on the Ouster OS0 asset
(.../Isaac/6.0/Isaac/Sensors/Ouster/OS0/OS0.usd) with a customized
OmniLidar profile (40 channels authored as attribute overrides),
publishing point cloud via ROS2PublishPointCloud.
The setup is Software-in-the-Loop (SIL): the ROS 2 topics published by
the simulation are consumed by a second machine connected over Ethernet,
with rmw_cyclonedds_cpp on both ends (CycloneDDS configured via XML with
explicit network interfaces and enlarged receive/defrag buffers for the large
image and point-cloud samples).
The crashes occur when the world is run through a standalone
SimulationApp Python script (launched with ~/isaacsim-6.0.1/python.sh,
which loads the stage, attaches the policy and steps the app in a
simulation_app.update() loop). So far we have not observed them when the
same world is opened interactively in the GUI editor.
We get two distinct, recurring segfaults (exit code 139). In all of them,
py-spy shows the Python main thread idle inside SimulationApp.update() —
the crash is always in a native worker thread.
Crash A — depth image writer (most frequent, reliably triggered)
002: libcuda.so!cuEGLApiInit+0x57f1b
003: libcuda.so!cuMemRetainAllocationHandle+0xaab4
004: libcuda.so!cuMipmappedArrayGetLevel+0x20
005: libisaacsim.ros2.nodes.plugin.so!void textureCopyToRawBufferKernel<float>(unsigned long long, float*, unsigned int, unsigned int)+0x76c8
006: libisaacsim.ros2.nodes.plugin.so!void textureCopyToRawBufferKernel<float>(...)+0x4bc17
Trigger: the crash only happens when the ROS 2 publishers are consumed
from the second device over Ethernet (the SIL consumer described above) —
subscribing on the sim host alone does not reproduce it. At one point it
crashed every time the remote machine subscribed to a depth image topic
(i.e., the moment the lazy publisher performs its first GPU texture copy).
It also crashed seconds after starting to drive the robot while the remote
consumers were attached. Uptime at crash ranged from ~136 s to ~20 min. The
<float> instantiation and the SDG pipeline commands in the crash metadata
point at the 32FC1 depth writers
(*_Pseudo_Depth_render_product_NodeWriterWriter, ROS2PublishImage).
What we tried:
/rtx/ecoMode/enabled = false — crashes still occurred;
- resolution is standard 640×480; GPU healthy (24 GB free VRAM, 55–63 °C,
no ECC errors, no OOM);
- workaround that avoids the crash entirely: disabling the depth
ROS2CameraHelper nodes and reading depth via the Replicator
distance_to_image_plane annotator attached to the same render products,
publishing sensor_msgs/Image from Python. rgb + camera_info writers keep
running fine. This isolates the fault to the bridge's GPU texture-copy path
for float images.
Frequency is intermittent across sessions (some days it triggers on every
remote subscribe, later the same setup ran clean), which suggests a race on
the render-product texture handle rather than a deterministic config error.
Crash B — RTX lidar plugin (long-running sessions)
002: librtx.rtxsensor.plugin.so!std::_Rb_tree<unsigned int, ...>::_M_get_insert_hint_unique_pos(...)+0x13d2d [low-confidence symbols]
003: librtx.rtxsensor.plugin.so!std::_Rb_tree<unsigned int, ...>::_M_get_insert_hint_unique_pos(...)+0x141d8
004-006: libgpu.foundation.plugin.so!...
007-010: libcarb.tasking.plugin.so!... (fiber, make_fcontext)
Happened twice: once early in a session and once after 3499 s (~58 min) of
continuous simulation with the robot being teleoperated. Possibly relevant:
our OS0 lidar profile is customized to 40 channels via attribute overrides on
top of the stock OS0_REV6_128ch10hz1024res profile — if any per-channel
array length is read from the base profile while numberOfChannels is
overridden, an out-of-bounds access inside the plugin would match this
signature.
Questions
- Is the
textureCopyToRawBufferKernel crash on first depth-image
subscription a known issue in 6.0.x, and is there a fix planned?
- Is publishing depth through the Replicator annotator (our workaround) the
recommended path until then?
- For the RTX lidar: are partial attribute overrides of a stock sensor
profile (changing numberOfChannels/emitter arrays) supported, or must a
custom profile be complete and self-consistent?
Isaac Sim version
6.0.1
Operating System (OS)
Ubuntu 22.04
GPU Name
RTX A5500
GPU Driver and CUDA versions
driver 580.159.03, CUDA 13.0
Logs
No response
Additional information
No response
Description
Environment
lib_isaacSim_buildVersion 6.0.1-rc.7, Kit 110.1.2+production.326809)isaacsim.ros2.bridge5.1.2 with internal ROS libs (isaacsim.ros2.core1.9.4),rmw_cyclonedds_cppSimulationAppPython script ({"headless": False}), physics 200 Hz (CPU device), rendering 25 fpsScene
A saved USD world containing the NVIDIA Spot asset
(
.../Isaac/6.0/Isaac/Robots/BostonDynamics/spot/spot.usd) driven bySpotFlatTerrainPolicy, with a custom sensor payload mounted on the robot:through
ROS2CameraHelper/ROS2CameraInfoHelperOmniGraph nodes;(
.../Isaac/6.0/Isaac/Sensors/Ouster/OS0/OS0.usd) with a customizedOmniLidarprofile (40 channels authored as attribute overrides),publishing point cloud via
ROS2PublishPointCloud.The setup is Software-in-the-Loop (SIL): the ROS 2 topics published by
the simulation are consumed by a second machine connected over Ethernet,
with
rmw_cyclonedds_cppon both ends (CycloneDDS configured via XML withexplicit network interfaces and enlarged receive/defrag buffers for the large
image and point-cloud samples).
The crashes occur when the world is run through a standalone
SimulationAppPython script (launched with~/isaacsim-6.0.1/python.sh,which loads the stage, attaches the policy and steps the app in a
simulation_app.update()loop). So far we have not observed them when thesame world is opened interactively in the GUI editor.
We get two distinct, recurring segfaults (exit code 139). In all of them,
py-spy shows the Python main thread idle inside
SimulationApp.update()—the crash is always in a native worker thread.
Crash A — depth image writer (most frequent, reliably triggered)
Trigger: the crash only happens when the ROS 2 publishers are consumed
from the second device over Ethernet (the SIL consumer described above) —
subscribing on the sim host alone does not reproduce it. At one point it
crashed every time the remote machine subscribed to a depth image topic
(i.e., the moment the lazy publisher performs its first GPU texture copy).
It also crashed seconds after starting to drive the robot while the remote
consumers were attached. Uptime at crash ranged from ~136 s to ~20 min. The
<float>instantiation and the SDG pipeline commands in the crash metadatapoint at the 32FC1 depth writers
(
*_Pseudo_Depth_render_product_NodeWriterWriter,ROS2PublishImage).What we tried:
/rtx/ecoMode/enabled = false— crashes still occurred;no ECC errors, no OOM);
ROS2CameraHelpernodes and reading depth via the Replicatordistance_to_image_planeannotator attached to the same render products,publishing
sensor_msgs/Imagefrom Python. rgb + camera_info writers keeprunning fine. This isolates the fault to the bridge's GPU texture-copy path
for float images.
Frequency is intermittent across sessions (some days it triggers on every
remote subscribe, later the same setup ran clean), which suggests a race on
the render-product texture handle rather than a deterministic config error.
Crash B — RTX lidar plugin (long-running sessions)
Happened twice: once early in a session and once after 3499 s (~58 min) of
continuous simulation with the robot being teleoperated. Possibly relevant:
our OS0 lidar profile is customized to 40 channels via attribute overrides on
top of the stock
OS0_REV6_128ch10hz1024resprofile — if any per-channelarray length is read from the base profile while
numberOfChannelsisoverridden, an out-of-bounds access inside the plugin would match this
signature.
Questions
textureCopyToRawBufferKernelcrash on first depth-imagesubscription a known issue in 6.0.x, and is there a fix planned?
recommended path until then?
profile (changing
numberOfChannels/emitter arrays) supported, or must acustom profile be complete and self-consistent?
Isaac Sim version
6.0.1
Operating System (OS)
Ubuntu 22.04
GPU Name
RTX A5500
GPU Driver and CUDA versions
driver 580.159.03, CUDA 13.0
Logs
No response
Additional information
No response