We are experiencing an issue with our ZED camera where the area memory file becomes corrupted after extended periods of operation. This effectively prevents the camera from being loaded at all
Problem Description:
The core issue seems to be related to the runtime duration before saving the area memory file.
-
Short Runtimes (e.g., under 30 seconds): If we run the camera, map an area, and save the
.area
file within a short timeframe (approx. 20-30 seconds), the file saves correctly. We can then successfully reload this file and initialize positional tracking without any issues. -
Long Runtimes (e.g., over 2 minutes): When the camera operates for an extended period (2 minutes or more), the node fails to shut down gracefully. We initiate the shutdown process with a single
SIGINT
(Ctrl+C), which should trigger the saving of the area file. As shown in the logs, the system escalates toSIGTERM
and finallySIGKILL
to force termination (not by our code).
Logs:
Here are the relevant logs that illustrate the failure sequence.
1. Error During Area File Save After a Long Run:
[component_container_isolated-2] [INFO] [1756372570.245063866] [zed_upper.zed_upper_node]: Saving area memory to: '/home/test_area_memory.area' ... [ERROR] [component_container_isolated-2]: process[component_container_isolated-2] failed to terminate '5' seconds after receiving 'SIGINT', escalating to 'SIGTERM' [INFO] [component_container_isolated-2]: sending signal 'SIGTERM' to process[component_container_isolated-2] [component_container_isolated-2] [INFO] [1756372575.487479308] [rclcpp]: signal_handler(signum=15) [ERROR] [component_container_isolated-2]: process[component_container_isolated-2] failed to terminate '10.0' seconds after receiving 'SIGTERM', escalating to 'SIGKILL' [INFO] [component_container_isolated-2]: sending signal 'SIGKILL' to process[component_container_isolated-2] [ERROR] [component_container_isolated-2]: process has died [pid 73563, exit code -9, cmd '/opt/ros/humble/lib/rclcpp_components/component_container_isolated --use_multi_threaded_executor --ros-args --log-level info --ros-args -r __node:=zed_container -r __ns:=/zed_upper'].
2. Failure to Start with Corrupted Area File:
[component_container_isolated-2] [2025-08-28 10:32:56 UTC][ZED][ERROR] Unable to load area file
[component_container_isolated-2] [WARN] [1756377176.803425038] [zed_upper.zed_upper_node]: Pos. Tracking not started: INVALID AREA FILE
...
[component_container_isolated-2] [2025-08-28 10:33:00 UTC][ZED][ERROR] Unable to load area file
[component_container_isolated-2] [WARN] [1756377180.201687141] [zed_upper.zed_upper_node]: Pos. Tracking not started: INVALID AREA FILE
[component_container_isolated-2] [FATAL] [1756377180.201800834] [zed_upper.zed_upper_node]: It's not possible to enable the required Positional Tracking module.
[component_container_isolated-2] (Argus) Error InvalidState: Argus client is exiting with 1 outstanding client threads (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 366)
[component_container_isolated-2] WARNING Argus: 5 client objects still exist during shutdown:
[component_container_isolated-2] 281473505878704 (0xffff0c0f3d30)
[component_container_isolated-2] 281473506010912 (0xffff0c0f3b30)
[component_container_isolated-2] 281473509866680 (0xffff0c1a9898)
[component_container_isolated-2] 281473530845216 (0xffff0c1a8b30)
[component_container_isolated-2] 281473534906912 (0xffff0c0f24b0)
[ERROR] [component_container_isolated-2]: process has died [pid 118715, exit code 1, cmd '/opt/ros/humble/lib/rclcpp_components/component_container_isolated --use_multi_threaded_executor --ros-args --log-level info --ros-args -r __node:=zed_container -r __ns:=/zed_upper'].
System Environment:
-
ROS Version: ROS 2 Humble
-
Platform: NVIDIA Jetson
-
JetPack Version: 6.2
-
ZEDXM
-
ZED SDK version 5.0.5
-
Docker container image: stereolabs/zed:5.0-runtime-jetson-jp6.1.0