-
Notifications
You must be signed in to change notification settings - Fork 114
Description
Hello, we recently upgraded the OrbbecSDK_ROS2 wrapper to the latest version (v2.4.7) of the ROS2 wrapper, and immediately started seeing a runaway memory usage increase on our system when using two Gemini 435Le cameras.
We use an unsynced multi camera launchfile setup based on the example on this repo. As soon as the launchfile starts, the nodes operate normally, but RAM usage quickly climbs and within minutes fills up the whole 16GB ram available, unless we kill it. With the previous release of OrbbecSDK_ROS2, RAM usage is under 2%.
Some more details:
- The host system is a Jetson Orin NX, 16GB, Jetpack 6.2
- Ubuntu is 22.04 jammy and ROS2 is humble.
- The problem occurs whether we use the v3.02 of the Gemini 435Lefirmware or the latest, v3.06.
- We use the default stock configuration, no parameter changes.
- We deploy OrbbecSDK_ROS2 by using a .deb built file using
.make_deb.shscript provided in this repo. This worked fine with the v2.4.5 release. (Update: I also tried the .deb file from the github release page, the behavior was the same). Logs for the nodes don't show any errors.(Update: using a debug log level does show errors, I've added logs below).
One possible clue is that investigating the problem, I tried adding "enumerate_net_device": "false" to the launch parameters (for no specific reason, just trying things), and surprisingly, that seemed to help. Launching and stopping the nodes with this change seemed to bring memory usage back to normal, except one time where it started leaking again, but not 100% sure about that one time (I was changing a few things when testing). We're currently testing more with this change and I can update, but regardless, it definitely seems like there's some buggy behavior here.
Update: it seems like enumerate_net_device: "false" only delays the memory leak, after running the launch file for a few more minutes RAM starts blowing up again.
Second update: if I start with enumerate_net_device: "false", memory usage seems to be low and relatively stable, until I disconnect the host's device ethernet cable to the switch to which the two gemini 435le cameras are also connected - then memory usage starts rapidly going up again, even after reconnecting the cable.