-
Notifications
You must be signed in to change notification settings - Fork 163
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
valgrind: Mismatched free / delete and other leaks #1009
Comments
I think ros2/rclcpp#1995 can fix this problem, duplicated with ros2/rclcpp#1996 |
Yes, confirmed that ros2/rclcpp#1995 fixes the |
this has been addressed. everything else, with my local environment.
valgrind --leak-check=full ./build/demo_nodes_cpp/talkerroot@tomoyafujita:~/ros2_ws/colcon_ws# valgrind --leak-check=full ./build/demo_nodes_cpp/talker
==207805== Memcheck, a memory error detector
==207805== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==207805== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info
==207805== Command: ./build/demo_nodes_cpp/talker
==207805==
==207805== Syscall param ioctl(SIOCGIFHWADDR) points to uninitialised byte(s)
==207805== at 0x4F21AFF: ioctl (ioctl.c:36)
==207805== by 0x5F984EE: eprosima::fastrtps::rtps::IPFinder::getAllMACAddress(std::vector<eprosima::fastrtps::rtps::IPFinder::info_MAC, std::allocator<eprosima::fastrtps::rtps::IPFinder::info_MAC> >*) (in /root/ros2_ws/colcon_ws/install/fastrtps/lib/libfastrtps.so.2.8.0)
==207805== by 0x5CAEE29: eprosima::fastdds::rtps::GuidUtils::GuidUtils() (in /root/ros2_ws/colcon_ws/install/fastrtps/lib/libfastrtps.so.2.8.0)
==207805== by 0x5CA951A: eprosima::fastrtps::rtps::RTPSDomainImpl::create_participant_guid(int&, eprosima::fastrtps::rtps::GUID_t&) (in /root/ros2_ws/colcon_ws/install/fastrtps/lib/libfastrtps.so.2.8.0)
==207805== by 0x5D64747: eprosima::fastdds::dds::DomainParticipantImpl::DomainParticipantImpl(eprosima::fastdds::dds::DomainParticipant*, unsigned int, eprosima::fastdds::dds::DomainParticipantQos const&, eprosima::fastdds::dds::DomainParticipantListener*) (in /root/ros2_ws/colcon_ws/install/fastrtps/lib/libfastrtps.so.2.8.0)
==207805== by 0x5D4CC7E: eprosima::fastdds::dds::DomainParticipantFactory::create_participant(unsigned int, eprosima::fastdds::dds::DomainParticipantQos const&, eprosima::fastdds::dds::DomainParticipantListener*, eprosima::fastdds::dds::StatusMask const&) (in /root/ros2_ws/colcon_ws/install/fastrtps/lib/libfastrtps.so.2.8.0)
==207805== by 0x58A9729: __create_participant(char const*, eprosima::fastdds::dds::DomainParticipantQos const&, bool, publishing_mode_t, rmw_dds_common::Context*, unsigned long) (in /root/ros2_ws/colcon_ws/install/rmw_fastrtps_shared_cpp/lib/librmw_fastrtps_shared_cpp.so)
==207805== by 0x58AA282: rmw_fastrtps_shared_cpp::create_participant(char const*, unsigned long, rmw_security_options_s const*, bool, char const*, rmw_dds_common::Context*) (in /root/ros2_ws/colcon_ws/install/rmw_fastrtps_shared_cpp/lib/librmw_fastrtps_shared_cpp.so)
==207805== by 0x57499BF: init_context_impl(rmw_context_s*) (in /root/ros2_ws/colcon_ws/build/rmw_fastrtps_cpp/librmw_fastrtps_cpp.so)
==207805== by 0x574A100: rmw_fastrtps_cpp::increment_context_impl_ref_count(rmw_context_s*) (in /root/ros2_ws/colcon_ws/build/rmw_fastrtps_cpp/librmw_fastrtps_cpp.so)
==207805== by 0x576FB0B: rmw_create_node (in /root/ros2_ws/colcon_ws/build/rmw_fastrtps_cpp/librmw_fastrtps_cpp.so)
==207805== by 0x505C0C5: rcl_node_init (in /root/ros2_ws/colcon_ws/install/rcl/lib/librcl.so)
==207805== Address 0x1ffefdff5f is on thread 1's stack
==207805== in frame #1, created by eprosima::fastrtps::rtps::IPFinder::getAllMACAddress(std::vector<eprosima::fastrtps::rtps::IPFinder::info_MAC, std::allocator<eprosima::fastrtps::rtps::IPFinder::info_MAC> >*) (???:)
==207805==
[INFO] [1663255182.400603270] [talker]: Publishing: 'Hello World: 1'
[INFO] [1663255183.391459588] [talker]: Publishing: 'Hello World: 2'
[INFO] [1663255184.391885194] [talker]: Publishing: 'Hello World: 3'
[INFO] [1663255185.391716617] [talker]: Publishing: 'Hello World: 4'
[INFO] [1663255186.391714986] [talker]: Publishing: 'Hello World: 5'
^C[INFO] [1663255186.551842763] [rclcpp]: signal_handler(signum=2)
==207805==
==207805== HEAP SUMMARY:
==207805== in use at exit: 53,205 bytes in 224 blocks
==207805== total heap usage: 22,554 allocs, 22,330 frees, 5,755,981 bytes allocated
==207805==
==207805== 336 (16 direct, 320 indirect) bytes in 1 blocks are definitely lost in loss record 109 of 125
==207805== at 0x484F013: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==207805== by 0x710E4E9: void class_loader::impl::registerPlugin<rclcpp_components::NodeFactoryTemplate<demo_nodes_cpp::Talker>, rclcpp_components::NodeFactory>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /root/ros2_ws/colcon_ws/build/demo_nodes_cpp/libtopics_library.so)
==207805== by 0x70D7157: _GLOBAL__sub_I_talker.cpp (in /root/ros2_ws/colcon_ws/build/demo_nodes_cpp/libtopics_library.so)
==207805== by 0x400647D: call_init.part.0 (dl-init.c:70)
==207805== by 0x4006567: call_init (dl-init.c:33)
==207805== by 0x4006567: _dl_init (dl-init.c:117)
==207805== by 0x4F7BC84: _dl_catch_exception (dl-error-skeleton.c:182)
==207805== by 0x400DFF5: dl_open_worker (dl-open.c:808)
==207805== by 0x400DFF5: dl_open_worker (dl-open.c:771)
==207805== by 0x4F7BC27: _dl_catch_exception (dl-error-skeleton.c:208)
==207805== by 0x400E34D: _dl_open (dl-open.c:883)
==207805== by 0x4E976BB: dlopen_doit (dlopen.c:56)
==207805== by 0x4F7BC27: _dl_catch_exception (dl-error-skeleton.c:208)
==207805== by 0x4F7BCF2: _dl_catch_error (dl-error-skeleton.c:227)
==207805==
==207805== 338 (16 direct, 322 indirect) bytes in 1 blocks are definitely lost in loss record 110 of 125
==207805== at 0x484F013: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==207805== by 0x712AF19: void class_loader::impl::registerPlugin<rclcpp_components::NodeFactoryTemplate<demo_nodes_cpp::Listener>, rclcpp_components::NodeFactory>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /root/ros2_ws/colcon_ws/build/demo_nodes_cpp/libtopics_library.so)
==207805== by 0x70D7517: _GLOBAL__sub_I_listener.cpp (in /root/ros2_ws/colcon_ws/build/demo_nodes_cpp/libtopics_library.so)
==207805== by 0x400647D: call_init.part.0 (dl-init.c:70)
==207805== by 0x4006567: call_init (dl-init.c:33)
==207805== by 0x4006567: _dl_init (dl-init.c:117)
==207805== by 0x4F7BC84: _dl_catch_exception (dl-error-skeleton.c:182)
==207805== by 0x400DFF5: dl_open_worker (dl-open.c:808)
==207805== by 0x400DFF5: dl_open_worker (dl-open.c:771)
==207805== by 0x4F7BC27: _dl_catch_exception (dl-error-skeleton.c:208)
==207805== by 0x400E34D: _dl_open (dl-open.c:883)
==207805== by 0x4E976BB: dlopen_doit (dlopen.c:56)
==207805== by 0x4F7BC27: _dl_catch_exception (dl-error-skeleton.c:208)
==207805== by 0x4F7BCF2: _dl_catch_error (dl-error-skeleton.c:227)
==207805==
==207805== 348 (16 direct, 332 indirect) bytes in 1 blocks are definitely lost in loss record 111 of 125
==207805== at 0x484F013: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==207805== by 0x713BE99: void class_loader::impl::registerPlugin<rclcpp_components::NodeFactoryTemplate<demo_nodes_cpp::ListenerBestEffort>, rclcpp_components::NodeFactory>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /root/ros2_ws/colcon_ws/build/demo_nodes_cpp/libtopics_library.so)
==207805== by 0x70D7797: _GLOBAL__sub_I_listener_best_effort.cpp (in /root/ros2_ws/colcon_ws/build/demo_nodes_cpp/libtopics_library.so)
==207805== by 0x400647D: call_init.part.0 (dl-init.c:70)
==207805== by 0x4006567: call_init (dl-init.c:33)
==207805== by 0x4006567: _dl_init (dl-init.c:117)
==207805== by 0x4F7BC84: _dl_catch_exception (dl-error-skeleton.c:182)
==207805== by 0x400DFF5: dl_open_worker (dl-open.c:808)
==207805== by 0x400DFF5: dl_open_worker (dl-open.c:771)
==207805== by 0x4F7BC27: _dl_catch_exception (dl-error-skeleton.c:208)
==207805== by 0x400E34D: _dl_open (dl-open.c:883)
==207805== by 0x4E976BB: dlopen_doit (dlopen.c:56)
==207805== by 0x4F7BC27: _dl_catch_exception (dl-error-skeleton.c:208)
==207805== by 0x4F7BCF2: _dl_catch_error (dl-error-skeleton.c:227)
==207805==
==207805== 349 (16 direct, 333 indirect) bytes in 1 blocks are definitely lost in loss record 112 of 125
==207805== at 0x484F013: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==207805== by 0x7119999: void class_loader::impl::registerPlugin<rclcpp_components::NodeFactoryTemplate<demo_nodes_cpp::LoanedMessageTalker>, rclcpp_components::NodeFactory>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /root/ros2_ws/colcon_ws/build/demo_nodes_cpp/libtopics_library.so)
==207805== by 0x70D7297: _GLOBAL__sub_I_talker_loaned_message.cpp (in /root/ros2_ws/colcon_ws/build/demo_nodes_cpp/libtopics_library.so)
==207805== by 0x400647D: call_init.part.0 (dl-init.c:70)
==207805== by 0x4006567: call_init (dl-init.c:33)
==207805== by 0x4006567: _dl_init (dl-init.c:117)
==207805== by 0x4F7BC84: _dl_catch_exception (dl-error-skeleton.c:182)
==207805== by 0x400DFF5: dl_open_worker (dl-open.c:808)
==207805== by 0x400DFF5: dl_open_worker (dl-open.c:771)
==207805== by 0x4F7BC27: _dl_catch_exception (dl-error-skeleton.c:208)
==207805== by 0x400E34D: _dl_open (dl-open.c:883)
==207805== by 0x4E976BB: dlopen_doit (dlopen.c:56)
==207805== by 0x4F7BC27: _dl_catch_exception (dl-error-skeleton.c:208)
==207805== by 0x4F7BCF2: _dl_catch_error (dl-error-skeleton.c:227)
==207805==
==207805== 353 (16 direct, 337 indirect) bytes in 1 blocks are definitely lost in loss record 113 of 125
==207805== at 0x484F013: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==207805== by 0x711D5C9: void class_loader::impl::registerPlugin<rclcpp_components::NodeFactoryTemplate<demo_nodes_cpp::SerializedMessageTalker>, rclcpp_components::NodeFactory>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /root/ros2_ws/colcon_ws/build/demo_nodes_cpp/libtopics_library.so)
==207805== by 0x70D73D7: _GLOBAL__sub_I_talker_serialized_message.cpp (in /root/ros2_ws/colcon_ws/build/demo_nodes_cpp/libtopics_library.so)
==207805== by 0x400647D: call_init.part.0 (dl-init.c:70)
==207805== by 0x4006567: call_init (dl-init.c:33)
==207805== by 0x4006567: _dl_init (dl-init.c:117)
==207805== by 0x4F7BC84: _dl_catch_exception (dl-error-skeleton.c:182)
==207805== by 0x400DFF5: dl_open_worker (dl-open.c:808)
==207805== by 0x400DFF5: dl_open_worker (dl-open.c:771)
==207805== by 0x4F7BC27: _dl_catch_exception (dl-error-skeleton.c:208)
==207805== by 0x400E34D: _dl_open (dl-open.c:883)
==207805== by 0x4E976BB: dlopen_doit (dlopen.c:56)
==207805== by 0x4F7BC27: _dl_catch_exception (dl-error-skeleton.c:208)
==207805== by 0x4F7BCF2: _dl_catch_error (dl-error-skeleton.c:227)
==207805==
==207805== 355 (16 direct, 339 indirect) bytes in 1 blocks are definitely lost in loss record 114 of 125
==207805== at 0x484F013: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==207805== by 0x7136CB9: void class_loader::impl::registerPlugin<rclcpp_components::NodeFactoryTemplate<demo_nodes_cpp::SerializedMessageListener>, rclcpp_components::NodeFactory>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /root/ros2_ws/colcon_ws/build/demo_nodes_cpp/libtopics_library.so)
==207805== by 0x70D7657: _GLOBAL__sub_I_listener_serialized_message.cpp (in /root/ros2_ws/colcon_ws/build/demo_nodes_cpp/libtopics_library.so)
==207805== by 0x400647D: call_init.part.0 (dl-init.c:70)
==207805== by 0x4006567: call_init (dl-init.c:33)
==207805== by 0x4006567: _dl_init (dl-init.c:117)
==207805== by 0x4F7BC84: _dl_catch_exception (dl-error-skeleton.c:182)
==207805== by 0x400DFF5: dl_open_worker (dl-open.c:808)
==207805== by 0x400DFF5: dl_open_worker (dl-open.c:771)
==207805== by 0x4F7BC27: _dl_catch_exception (dl-error-skeleton.c:208)
==207805== by 0x400E34D: _dl_open (dl-open.c:883)
==207805== by 0x4E976BB: dlopen_doit (dlopen.c:56)
==207805== by 0x4F7BC27: _dl_catch_exception (dl-error-skeleton.c:208)
==207805== by 0x4F7BCF2: _dl_catch_error (dl-error-skeleton.c:227)
==207805==
==207805== 356 (16 direct, 340 indirect) bytes in 1 blocks are definitely lost in loss record 115 of 125
==207805== at 0x484F013: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==207805== by 0x70FA6E9: void class_loader::impl::registerPlugin<rclcpp_components::NodeFactoryTemplate<demo_nodes_cpp::ContentFilteringSubscriber>, rclcpp_components::NodeFactory>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /root/ros2_ws/colcon_ws/build/demo_nodes_cpp/libtopics_library.so)
==207805== by 0x70D7017: _GLOBAL__sub_I_content_filtering_subscriber.cpp (in /root/ros2_ws/colcon_ws/build/demo_nodes_cpp/libtopics_library.so)
==207805== by 0x400647D: call_init.part.0 (dl-init.c:70)
==207805== by 0x4006567: call_init (dl-init.c:33)
==207805== by 0x4006567: _dl_init (dl-init.c:117)
==207805== by 0x4F7BC84: _dl_catch_exception (dl-error-skeleton.c:182)
==207805== by 0x400DFF5: dl_open_worker (dl-open.c:808)
==207805== by 0x400DFF5: dl_open_worker (dl-open.c:771)
==207805== by 0x4F7BC27: _dl_catch_exception (dl-error-skeleton.c:208)
==207805== by 0x400E34D: _dl_open (dl-open.c:883)
==207805== by 0x4E976BB: dlopen_doit (dlopen.c:56)
==207805== by 0x4F7BC27: _dl_catch_exception (dl-error-skeleton.c:208)
==207805== by 0x4F7BCF2: _dl_catch_error (dl-error-skeleton.c:227)
==207805==
==207805== 520 (16 direct, 504 indirect) bytes in 1 blocks are definitely lost in loss record 117 of 125
==207805== at 0x484F013: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==207805== by 0x70E2659: void class_loader::impl::registerPlugin<rclcpp_components::NodeFactoryTemplate<demo_nodes_cpp::ContentFilteringPublisher>, rclcpp_components::NodeFactory>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /root/ros2_ws/colcon_ws/build/demo_nodes_cpp/libtopics_library.so)
==207805== by 0x70D6ED7: _GLOBAL__sub_I_content_filtering_publisher.cpp (in /root/ros2_ws/colcon_ws/build/demo_nodes_cpp/libtopics_library.so)
==207805== by 0x400647D: call_init.part.0 (dl-init.c:70)
==207805== by 0x4006567: call_init (dl-init.c:33)
==207805== by 0x4006567: _dl_init (dl-init.c:117)
==207805== by 0x4F7BC84: _dl_catch_exception (dl-error-skeleton.c:182)
==207805== by 0x400DFF5: dl_open_worker (dl-open.c:808)
==207805== by 0x400DFF5: dl_open_worker (dl-open.c:771)
==207805== by 0x4F7BC27: _dl_catch_exception (dl-error-skeleton.c:208)
==207805== by 0x400E34D: _dl_open (dl-open.c:883)
==207805== by 0x4E976BB: dlopen_doit (dlopen.c:56)
==207805== by 0x4F7BC27: _dl_catch_exception (dl-error-skeleton.c:208)
==207805== by 0x4F7BCF2: _dl_catch_error (dl-error-skeleton.c:227)
==207805==
==207805== LEAK SUMMARY:
==207805== definitely lost: 128 bytes in 8 blocks
==207805== indirectly lost: 2,827 bytes in 50 blocks
==207805== possibly lost: 0 bytes in 0 blocks
==207805== still reachable: 50,250 bytes in 166 blocks
==207805== suppressed: 0 bytes in 0 blocks
==207805== Reachable blocks (those to which a pointer was found) are not shown.
==207805== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==207805==
==207805== Use --track-origins=yes to see where uninitialised values come from
==207805== For lists of detected and suppressed errors, rerun with: -s
==207805== ERROR SUMMARY: 9 errors from 9 contexts (suppressed: 0 from 0) |
This might be solved by ros/class_loader#199 |
eProsima/Fast-DDS#2954 can address above. |
Actually, I think ros/class_loader#196 is the correct fix. ros/class_loader#199 updating the following source code seems not good to me. - * @brief Destructor for the class. THIS MUST NOT BE VIRTUAL AND OVERRIDDEN BY
- * TEMPLATE SUBCLASSES, OTHERWISE THEY WILL PULL IN A REDUNDANT METAOBJECT
- * DESTRUCTOR OUTSIDE OF libclass_loader WITHIN THE PLUGIN LIBRARY! T
+ * @brief Default virtual destructor
*/
- ~AbstractMetaObjectBase();
+ virtual ~AbstractMetaObjectBase() = default; After using the ros/class_loader#196 and the following patch for rclcpp_component, the memory leak will be gone. diff --git a/rclcpp_components/src/node_main.cpp.in b/rclcpp_components/src/node_main.cpp.in
index 0ca5eb8c..71754d1f 100644
--- a/rclcpp_components/src/node_main.cpp.in
+++ b/rclcpp_components/src/node_main.cpp.in
@@ -30,14 +30,13 @@ int main(int argc, char * argv[])
rclcpp::executors::@executor@ exec;
rclcpp::NodeOptions options;
options.arguments(args);
- std::vector<class_loader::ClassLoader * > loaders;
std::vector<rclcpp_components::NodeInstanceWrapper> node_wrappers;
std::string library_name = "@library_name@";
std::string class_name = "rclcpp_components::NodeFactoryTemplate<@component@>";
RCLCPP_DEBUG(logger, "Load library %s", library_name.c_str());
- auto loader = new class_loader::ClassLoader(library_name);
+ auto loader = std::make_unique<class_loader::ClassLoader>(library_name);
auto classes = loader->getAvailableClasses<rclcpp_components::NodeFactory>();
for (const auto & clazz : classes) {
std::string name = clazz.c_str();
@@ -59,8 +58,6 @@ int main(int argc, char * argv[])
exec.add_node(node);
}
}
- loaders.push_back(loader);
-
exec.spin();
log
chenlh ros2-master $ valgrind --leak-check=full ./build/demo_nodes_cpp/talker
==1213095== Memcheck, a memory error detector
==1213095== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==1213095== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==1213095== Command: ./build/demo_nodes_cpp/talker
==1213095==
[INFO] [1663306906.483925290] [talker]: Publishing: 'Hello World: 1'
[INFO] [1663306907.465399901] [talker]: Publishing: 'Hello World: 2'
[INFO] [1663306908.465337444] [talker]: Publishing: 'Hello World: 3'
^C[INFO] [1663306908.918579342] [rclcpp]: signal_handler(signum=2)
==1213095==
==1213095== HEAP SUMMARY:
==1213095== in use at exit: 49,916 bytes in 167 blocks
==1213095== total heap usage: 21,331 allocs, 21,164 frees, 5,362,526 bytes allocated
==1213095==
==1213095== LEAK SUMMARY:
==1213095== definitely lost: 0 bytes in 0 blocks
==1213095== indirectly lost: 0 bytes in 0 blocks
==1213095== possibly lost: 0 bytes in 0 blocks
==1213095== still reachable: 49,916 bytes in 167 blocks
==1213095== suppressed: 0 bytes in 0 blocks
==1213095== Reachable blocks (those to which a pointer was found) are not shown.
==1213095== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==1213095==
==1213095== For lists of detected and suppressed errors, rerun with: -s
==1213095== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
|
What does "seems not good to me" mean? Can you give a technical argument? |
Bug report
valgrind reports a mismatched delete in
rcl_subscription_fini.part.0 (subscription.c:193)
and a couple of "definitely lost" leaks. Not sure if this originates in rclcpp pr rclc. See full valgrind log below.Required Info:
Steps to reproduce issue
Run the
talker
with valgrind:Expected behavior
No issues reported
Actual behavior
Additional information
The text was updated successfully, but these errors were encountered: