[ros-users] [Discourse.ros.org] [Next Generation ROS] Ros2 LifecycleNode memory corruption issues

Snowman ros.discourse at gmail.com
Tue Apr 18 00:52:31 UTC 2017




We are experimenting with ROS2 and the LifecycleNode and started to observe crashes in our code. When we use regular nodes everything seems to be working fine. I tried to use valgrind to see what might be happening and indeed there are many warnings coming out from the tool (see some of the stuff below). 

I guess my question is - in what shape is the lifecycle package and are you guys aware of these problems? 

Thanks :)


Invalid write of size 2
==4948==    at 0x4C32723: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4948==    by 0x7009998: concatenate (in /home/breh/ros2_ws/build/rcl_lifecycle/librcl_lifecycle.so)
==4948==    by 0x7009B68: rcl_lifecycle_com_interface_init (in /home/breh/ros2_ws/build/rcl_lifecycle/librcl_lifecycle.so)
==4948==    by 0x700A8AC: rcl_lifecycle_state_machine_init (in /home/breh/ros2_ws/build/rcl_lifecycle/librcl_lifecycle.so)
==4948==    by 0x5AF59F7: rclcpp_lifecycle::LifecycleNode::LifecycleNodeInterfaceImpl::init() (in /home/breh/ros2_ws/build/rclcpp_lifecycle/librclcpp_lifecycle.so)
==4948==    by 0x5AF3CDF: rclcpp_lifecycle::LifecycleNode::LifecycleNode(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<rclcpp::context::Context>, bool) (in /home/breh/ros2_ws/build/rclcpp_lifecycle/librclcpp_lifecycle.so)
==4948==    by 0x5AF3985: rclcpp_lifecycle::LifecycleNode::LifecycleNode(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (in /home/breh/ros2_ws/build/rclcpp_lifecycle/librclcpp_lifecycle.so)
==4948==    by 0x40B4D1: LifecycleTalker::LifecycleTalker(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (in /home/breh/ros2_overlay_ws/install/bin/lifecycle_talker)
==4948==    by 0x413E62: _ZN9__gnu_cxx13new_allocatorI15LifecycleTalkerE9constructIS1_IRA10_KcEEEvPT_DpOT0_ (in /home/breh/ros2_overlay_ws/install/bin/lifecycle_talker)
==4948==    by 0x413437: _ZNSt16allocator_traitsISaI15LifecycleTalkerEE9constructIS0_IRA10_KcEEEvRS1_PT_DpOT0_ (in /home/breh/ros2_overlay_ws/install/bin/lifecycle_talker)
==4948==    by 0x412855: std::_Sp_counted_ptr_inplace<LifecycleTalker, std::allocator<LifecycleTalker>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<char const (&) [10]>(std::allocator<LifecycleTalker>, char const (&) [10]) (in /home/breh/ros2_overlay_ws/install/bin/lifecycle_talker)
==4948==    by 0x4115B6: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<LifecycleTalker, std::allocator<LifecycleTalker>, char const (&) [10]>(std::_Sp_make_shared_tag, LifecycleTalker*, std::allocator<LifecycleTalker> const&, char const (&) [10]) (in /home/breh/ros2_overlay_ws/install/bin/lifecycle_talker)
==4948==  Address 0xe620f3a is 26 bytes inside a block of size 27 alloc'd
==4948==    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4948==    by 0x7009946: concatenate (in /home/breh/ros2_ws/build/rcl_lifecycle/librcl_lifecycle.so)
==4948==    by 0x7009B68: rcl_lifecycle_com_interface_init (in /home/breh/ros2_ws/build/rcl_lifecycle/librcl_lifecycle.so)
==4948==    by 0x700A8AC: rcl_lifecycle_state_machine_init (in /home/breh/ros2_ws/build/rcl_lifecycle/librcl_lifecycle.so)
==4948==    by 0x5AF59F7: rclcpp_lifecycle::LifecycleNode::LifecycleNodeInterfaceImpl::init() (in /home/breh/ros2_ws/build/rclcpp_lifecycle/librclcpp_lifecycle.so)
==4948==    by 0x5AF3CDF: rclcpp_lifecycle::LifecycleNode::LifecycleNode(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<rclcpp::context::Context>, bool) (in /home/breh/ros2_ws/build/rclcpp_lifecycle/librclcpp_lifecycle.so)
==4948==    by 0x5AF3985: rclcpp_lifecycle::LifecycleNode::LifecycleNode(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (in /home/breh/ros2_ws/build/rclcpp_lifecycle/librclcpp_lifecycle.so)
==4948==    by 0x40B4D1: LifecycleTalker::LifecycleTalker(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (in /home/breh/ros2_overlay_ws/install/bin/lifecycle_talker)
==4948==    by 0x413E62: _ZN9__gnu_cxx13new_allocatorI15LifecycleTalkerE9constructIS1_IRA10_KcEEEvPT_DpOT0_ (in /home/breh/ros2_overlay_ws/install/bin/lifecycle_talker)
==4948==    by 0x413437: _ZNSt16allocator_traitsISaI15LifecycleTalkerEE9constructIS0_IRA10_KcEEEvRS1_PT_DpOT0_ (in /home/breh/ros2_overlay_ws/install/bin/lifecycle_talker)
==4948==    by 0x412855: std::_Sp_counted_ptr_inplace<LifecycleTalker, std::allocator<LifecycleTalker>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<char const (&) [10]>(std::allocator<LifecycleTalker>, char const (&) [10]) (in /home/breh/ros2_overlay_ws/install/bin/lifecycle_talker)
==4948==    by 0x4115B6: std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<LifecycleTalker, std::allocator<LifecycleTalker>, char const (&) [10]>(std::_Sp_make_shared_tag, LifecycleTalker*, std::allocator<LifecycleTalker> const&, char const (&) [10]) (in /home/breh/ros2_overlay_ws/install/bin/lifecycle_talker)






---
[Visit Topic](https://discourse.ros.org/t/ros2-lifecyclenode-memory-corruption-issues/1666/1) or reply to this email to respond.




More information about the ros-users mailing list