Comments (7)
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.
- 8 of 9 are
class_loader
related.
This might be solved by ros/class_loader#199
from rcl.
1 of 9 is rmw_fastrtps related.
eProsima/Fast-DDS#2954 can address above.
from rcl.
I think ros2/rclcpp#1995 can fix this problem, duplicated with ros2/rclcpp#1996
from rcl.
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.
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.
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)
- Rosout publisher always gets standard allocator HOT 4
- Contradicting code docs for rcl_publish and rmw_publish HOT 2
- rcl_node_init uses wrong return code HOT 4
- Flaky test on Windows on the buildfarm: test_logging_rosout__rmw_connextdds
- master branch is behind rolling branch HOT 2
- Test `test_graph__rmw_connextdds` failing on nightly_win_rep
- Fix durability of service introspection topics HOT 9
- Remove `localhost_only` option for turtule-J
- Dynamically remap topic names HOT 8
- Feature request: Sending an Action goal can be complexed, require difficult steps HOT 2
- rcl_action: result_timeout should be started on goal completion HOT 21
- 👩🌾 ❄ Flaky `test_get_type_description_service__rmw_cyclonedds_cpp` & `rcl.TestGetTypeDescSrvFixture__rmw_cyclonedds_cpp.test_service_init_and_fini_functions` tests
- Request for API that returns how many messages are ready for a subscription HOT 1
- Segfault creating a publisher in MoveIt 2 Example, only with Fast DDS RMW HOT 7
- Flaky: failed to add guard condition to wait set: guard condition implementation is invalid HOT 5
- :farmer: `test_node__rmw` test failing for `connextdds`, `cyclonedds` and `fastrtps`
- rcl_yaml_param_parser incorrectly parsing integer values bigger than LONG_MAX = 2147483647
- Adding `ament_generate_version_header(..)` to these packages? HOT 1
- Allow non-ros parameters in params file HOT 4
- Actions: Reason for the default QoS for status_topic_qos? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rcl.