Occasional error handling message in ReachySDK logs

Hi Pollen Robotics team,

Sometimes I see this error handling message in the ReachySDK service logs:

Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [robot_state_publisher-2]
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [robot_state_publisher-2] >>> [rcutils|error_handling.c:108] rcutils_set_error_state()
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [robot_state_publisher-2] This error state is being overwritten:
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [robot_state_publisher-2]
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [robot_state_publisher-2]   'string data is not null-terminated, at ./src/serdata.cpp:384'
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [robot_state_publisher-2]
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [robot_state_publisher-2] with this new error message:
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [robot_state_publisher-2]
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [robot_state_publisher-2]   'invalid data size, at ./src/serdata.cpp:384'
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [robot_state_publisher-2]
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [robot_state_publisher-2] rcutils_reset_error() should be called after error handling to avoid this.
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [robot_state_publisher-2] <<<
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [ros2_control_node-1]
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [ros2_control_node-1] >>> [rcutils|error_handling.c:108] rcutils_set_error_state()
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [ros2_control_node-1] This error state is being overwritten:
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [ros2_control_node-1]
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [ros2_control_node-1]   'string data is not null-terminated, at ./src/serdata.cpp:384'
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [ros2_control_node-1]
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [ros2_control_node-1] with this new error message:
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [ros2_control_node-1]
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [ros2_control_node-1]   'invalid data size, at ./src/serdata.cpp:384'
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [ros2_control_node-1]
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [ros2_control_node-1] rcutils_reset_error() should be called after error handling to avoid this.
Feb 02 15:36:17 reachy-2023-0001 reachy_sdk_server[1938]: [ros2_control_node-1] <<<
Feb 02 15:38:39 reachy-2023-0001 reachy_sdk_server[7215]: >>> [rcutils|error_handling.c:108] rcutils_set_error_state()
Feb 02 15:38:39 reachy-2023-0001 reachy_sdk_server[7215]: This error state is being overwritten:
Feb 02 15:38:39 reachy-2023-0001 reachy_sdk_server[7215]:   'invalid data size, at ./src/serdata.cpp:384'
Feb 02 15:38:39 reachy-2023-0001 reachy_sdk_server[7215]: with this new error message:
Feb 02 15:38:39 reachy-2023-0001 reachy_sdk_server[7215]:   'string data is not null-terminated, at ./src/serdata.cpp:384'
Feb 02 15:38:39 reachy-2023-0001 reachy_sdk_server[7215]: rcutils_reset_error() should be called after error handling to avoid this.
Feb 02 15:38:39 reachy-2023-0001 reachy_sdk_server[7215]: <<<

And in the MobileBase service logs too:

Feb 02 15:55:41 reachy-2023-0001 reachy_mobile_base[2015]: [hal-2] <<<
Feb 02 15:55:41 reachy-2023-0001 reachy_mobile_base[2015]: [hal-2] [INFO] [1770069341.696002551] [zuuu_hal]: => Zuuu HAL up and running! **
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [mobile_base_sdk_server-3]
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [mobile_base_sdk_server-3] >>> [rcutils|error_handling.c:108] rcutils_set_error_state()
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [mobile_base_sdk_server-3] This error state is being overwritten:
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [mobile_base_sdk_server-3]
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [mobile_base_sdk_server-3]   'invalid data size, at ./src/serdata.cpp:384'
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [mobile_base_sdk_server-3]
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [mobile_base_sdk_server-3] with this new error message:
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [mobile_base_sdk_server-3]
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [mobile_base_sdk_server-3]   'string data is not null-terminated, at ./src/serdata.cpp:384'
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [mobile_base_sdk_server-3]
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [mobile_base_sdk_server-3] rcutils_reset_error() should be called after error handling to avoid this.
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [mobile_base_sdk_server-3] <<<
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [rplidar_scan_publisher-1]
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [rplidar_scan_publisher-1] >>> [rcutils|error_handling.c:108] rcutils_set_error_state()
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [rplidar_scan_publisher-1] This error state is being overwritten:
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [rplidar_scan_publisher-1]
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [rplidar_scan_publisher-1]   'invalid data size, at ./src/serdata.cpp:384'
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [rplidar_scan_publisher-1]
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [rplidar_scan_publisher-1] with this new error message:
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [rplidar_scan_publisher-1]
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [rplidar_scan_publisher-1]   'string data is not null-terminated, at ./src/serdata.cpp:384'
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [rplidar_scan_publisher-1]
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [rplidar_scan_publisher-1] rcutils_reset_error() should be called after error handling to avoid this.
Feb 02 15:55:56 reachy-2023-0001 reachy_mobile_base[2015]: [rplidar_scan_publisher-1] <<<

I was wondering if there is a way to find out what causes this and how to prevent it? And if this error handling message is something to worry about?

Thank you very much!

Hello!

Did you update anything on the robot recently (for example, ran apt update / apt upgrade)?
We’ve never seen this message before, so that could help explain it.

Does it prevent you from using the robot, or does it cause any unexpected behavior?

Hi Gaelle,

Thank you for the reply! I don’t think we ran apt update/upgrade, though we have pip installed some other packages on the computer like pyrealsense2.

I think the error is harmless usually, but I did notice for the mobile base, after this error handling message appears, the mobile base service gRPC will have trouble connecting to the base (and sometimes the ReachySDK service too). So I would restart the mobile base service which briefly fixes it, but usually it will appear again. I also sometimes tried shutting down and starting Reachy’s computer but that also does not always fix it.

I was just curious if this was something that people have seen before, but no problem if not. Thank you for your help!