Giter Site home page Giter Site logo

Comments (7)

iuhilnehc-ynos avatar iuhilnehc-ynos commented on August 11, 2024 2

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)

from rcl.

clalancette avatar clalancette commented on August 11, 2024 1
  • 8 of 9 are class_loader related.

This might be solved by ros/class_loader#199

from rcl.

fujitatomoya avatar fujitatomoya commented on August 11, 2024 1

1 of 9 is rmw_fastrtps related.

eProsima/Fast-DDS#2954 can address above.

from rcl.

fujitatomoya avatar fujitatomoya commented on August 11, 2024

I think ros2/rclcpp#1995 can fix this problem, duplicated with ros2/rclcpp#1996

from rcl.

clalancette avatar clalancette commented on August 11, 2024

I think ros2/rclcpp#1995 can fix this problem, duplicated with ros2/rclcpp#1996

Yes, confirmed that ros2/rclcpp#1995 fixes the Mismatched free problem. The other leaks are less clear to me, they'll have to be investigated separately.

from rcl.

fujitatomoya avatar fujitatomoya commented on August 11, 2024

confirmed that ros2/rclcpp#1995 fixes the Mismatched free problem.

this has been addressed.

everything else, with my local environment.

  • 1 of 9 is rmw_fastrtps related.
  • 8 of 9 are class_loader related.
valgrind --leak-check=full ./build/demo_nodes_cpp/talker
root@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)

from rcl.

tylerjw avatar tylerjw commented on August 11, 2024

updating the following source code seems not good to me.

What does "seems not good to me" mean? Can you give a technical argument?

from rcl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.