-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Segmentation fault caused by conflict between ion-kit and ROS Client Library in spdlog usage #331
Comments
Summaryion-kit and rclcpp use differing versions of spdlog, and I think it is the reason causing a segfault in program since the segmentfault doesn't happen when I don't link against ion-kit ros2 spdlogIt looks like the ros2 logger [compiles against the system's version of spdlog] (https://github.com/ros2/rcl_logging/blob/fc3a6f37ada01d21242eb146d1f7715a1f1e6a00/rcl_logging_spdlog/CMakeLists.txt#L17), and I think it should be the same in ion-kit。 FixUse (or add the option to use) the system version of spdlog in cmake. if can not found the system spdlog use our own spdlog |
built on ros2 environment #334 |
|
@xinyuli1204 Thanks for the investigation. Is this fix compatible with multiple/different version of ROS2 which may link different version of spdlog? |
A segmentation occurs at the end of a program when using ion-kit with the rcl in a C++ environment.
Both ion-kit and rcl utilize the
spdlog::logger
class and this caused ion-kit tries to access the logger instance after rcl cleans it up.Tentatively we disabled the use of
spdlog::logger
byset_level
, and we can test the change of thespdlog:logger
in ion-kit to a local instance to avoid this conflict. Further testing is required to confirm if this solution effectively resolves this issue.The text was updated successfully, but these errors were encountered: