I'm having problems running the talker/listener example on Dashing. I'm running this on Docker using the image osrf/ros2:nightly
that currently has ROS 2 dashing installed. I'm installing rmw_cyclonedds_cpp
as follows:
Also, when I launch first launch the talker, and then the listener, the talker sometimes crashes with a segfault.
root@ub80c134adc2254:/opt/workspace# RMW_IMPLEMENTATION=rmw_cyclonedds_cpp valgrind /opt/ros/dashing/lib/demo_nodes_cpp/talker
==16717== Memcheck, a memory error detector
==16717== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==16717== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==16717== Command: /opt/ros/dashing/lib/demo_nodes_cpp/talker
==16717==
==16717== Thread 6 tev:
==16717== Syscall param sendmsg(msg.msg_iov[2]) points to uninitialised byte(s)
==16717== at 0x5E92D37: sendmsg (sendmsg.c:28)
==16717== by 0x9576038: ddsrt_sendmsg (socket.c:534)
==16717== by 0x9514859: ddsi_udp_conn_write (ddsi_udp.c:149)
==16717== by 0x9550F4D: ddsi_conn_write (ddsi_tran.h:234)
==16717== by 0x9550F4D: nn_xpack_send1 (q_xmsg.c:1290)
==16717== by 0x956FB5C: ddsrt_avl_walk (avl.c:649)
==16717== by 0x951A0AE: addrset_forall_count (q_addrset.c:530)
==16717== by 0x95517C6: nn_xpack_send_real.part.2 (q_xmsg.c:1391)
==16717== by 0x9552C49: nn_xpack_addmsg (q_xmsg.c:1636)
==16717== by 0x954E6D3: handle_xevk_msg (q_xevent.c:562)
==16717== by 0x954E6D3: handle_individual_xevent_nt (q_xevent.c:1216)
==16717== by 0x954F1A9: handle_nontimed_xevent (q_xevent.c:1261)
==16717== by 0x954F1A9: handle_xevents (q_xevent.c:1312)
==16717== by 0x954F1A9: xevent_thread (q_xevent.c:1340)
==16717== by 0x954B596: create_thread_wrapper (q_thread.c:192)
==16717== by 0x95768D7: os_startRoutineWrapper (threads.c:151)
==16717== Address 0x912be1c is 300 bytes inside a block of size 496 alloc'd
==16717== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16717== by 0x9574BE8: ddsrt_realloc (heap.c:65)
==16717== by 0x951727B: serdata_default_append (ddsi_serdata_default.c:94)
==16717== by 0x951727B: serdata_default_append_aligned (ddsi_serdata_default.c:111)
==16717== by 0x951727B: serdata_default_append_blob.constprop.0 (ddsi_serdata_default.c:121)
==16717== by 0x95172FE: serdata_default_from_sample_plist (ddsi_serdata_default.c:456)
==16717== by 0x951E815: ddsi_serdata_from_sample (ddsi_serdata.h:167)
==16717== by 0x951E815: write_mpayload (q_ddsi_discovery.c:179)
==16717== by 0x951F72A: spdp_write (q_ddsi_discovery.c:324)
==16717== by 0x9529DD5: new_participant_guid (q_entity.c:636)
==16717== by 0x9554C0A: dds_create_participant (dds_participant.c:186)
==16717== by 0x925808D: ref_ppant() (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x925BCFE: rmw_create_guard_condition (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x5191B9D: __rcl_guard_condition_init_from_rmw_impl (guard_condition.c:86)
==16717== by 0x4EEA338: rclcpp::node_interfaces::NodeBase::NodeBase(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&, std::shared_ptr<rclcpp::Context>, rcl_node_options_t const&, bool) (node_base.cpp:48)
==16717==
==16717== Syscall param sendmsg(msg.msg_iov[5]) points to uninitialised byte(s)
==16717== at 0x5E92D37: sendmsg (sendmsg.c:28)
==16717== by 0x9576038: ddsrt_sendmsg (socket.c:534)
==16717== by 0x9514859: ddsi_udp_conn_write (ddsi_udp.c:149)
==16717== by 0x9550F4D: ddsi_conn_write (ddsi_tran.h:234)
==16717== by 0x9550F4D: nn_xpack_send1 (q_xmsg.c:1290)
==16717== by 0x956FB5C: ddsrt_avl_walk (avl.c:649)
==16717== by 0x951A0AE: addrset_forall_count (q_addrset.c:530)
==16717== by 0x95517C6: nn_xpack_send_real.part.2 (q_xmsg.c:1391)
==16717== by 0x9552C49: nn_xpack_addmsg (q_xmsg.c:1636)
==16717== by 0x954E6D3: handle_xevk_msg (q_xevent.c:562)
==16717== by 0x954E6D3: handle_individual_xevent_nt (q_xevent.c:1216)
==16717== by 0x954F1A9: handle_nontimed_xevent (q_xevent.c:1261)
==16717== by 0x954F1A9: handle_xevents (q_xevent.c:1312)
==16717== by 0x954F1A9: xevent_thread (q_xevent.c:1340)
==16717== by 0x954B596: create_thread_wrapper (q_thread.c:192)
==16717== by 0x95768D7: os_startRoutineWrapper (threads.c:151)
==16717== Address 0x9137e1c is 300 bytes inside a block of size 496 alloc'd
==16717== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16717== by 0x9574BE8: ddsrt_realloc (heap.c:65)
==16717== by 0x951727B: serdata_default_append (ddsi_serdata_default.c:94)
==16717== by 0x951727B: serdata_default_append_aligned (ddsi_serdata_default.c:111)
==16717== by 0x951727B: serdata_default_append_blob.constprop.0 (ddsi_serdata_default.c:121)
==16717== by 0x95172FE: serdata_default_from_sample_plist (ddsi_serdata_default.c:456)
==16717== by 0x951E815: ddsi_serdata_from_sample (ddsi_serdata.h:167)
==16717== by 0x951E815: write_mpayload (q_ddsi_discovery.c:179)
==16717== by 0x951F72A: spdp_write (q_ddsi_discovery.c:324)
==16717== by 0x9529DD5: new_participant_guid (q_entity.c:636)
==16717== by 0x9554C0A: dds_create_participant (dds_participant.c:186)
==16717== by 0x925880E: rmw_create_node (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x51965CC: rcl_node_init (node.c:321)
==16717== by 0x4EEA3C1: rclcpp::node_interfaces::NodeBase::NodeBase(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&, std::shared_ptr<rclcpp::Context>, rcl_node_options_t const&, bool) (node_base.cpp:66)
==16717== by 0x4EE3D0D: rclcpp::Node::Node(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&, rclcpp::NodeOptions const&) (node.cpp:116)
==16717==
[INFO] [talker]: Publishing: 'Hello World: 1'
[INFO] [talker]: Publishing: 'Hello World: 2'
[INFO] [talker]: Publishing: 'Hello World: 3'
[INFO] [talker]: Publishing: 'Hello World: 4'
[INFO] [talker]: Publishing: 'Hello World: 5'
[INFO] [talker]: Publishing: 'Hello World: 6'
[INFO] [talker]: Publishing: 'Hello World: 7'
[INFO] [talker]: Publishing: 'Hello World: 8'
[INFO] [talker]: Publishing: 'Hello World: 9'
[INFO] [talker]: Publishing: 'Hello World: 10'
==16717== Syscall param sendmsg(msg.msg_iov[8]) points to uninitialised byte(s)
==16717== at 0x5E92D37: sendmsg (sendmsg.c:28)
==16717== by 0x9576038: ddsrt_sendmsg (socket.c:534)
==16717== by 0x9514859: ddsi_udp_conn_write (ddsi_udp.c:149)
==16717== by 0x9550F4D: ddsi_conn_write (ddsi_tran.h:234)
==16717== by 0x9550F4D: nn_xpack_send1 (q_xmsg.c:1290)
==16717== by 0x95516EE: nn_xpack_send_real.part.2 (q_xmsg.c:1379)
==16717== by 0x954F33B: xevent_thread (q_xevent.c:1343)
==16717== by 0x954B596: create_thread_wrapper (q_thread.c:192)
==16717== by 0x95768D7: os_startRoutineWrapper (threads.c:151)
==16717== by 0x63746DA: start_thread (pthread_create.c:463)
==16717== by 0x5E9188E: clone (clone.S:95)
==16717== Address 0x912be1c is 300 bytes inside a block of size 496 alloc'd
==16717== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16717== by 0x9574BE8: ddsrt_realloc (heap.c:65)
==16717== by 0x951727B: serdata_default_append (ddsi_serdata_default.c:94)
==16717== by 0x951727B: serdata_default_append_aligned (ddsi_serdata_default.c:111)
==16717== by 0x951727B: serdata_default_append_blob.constprop.0 (ddsi_serdata_default.c:121)
==16717== by 0x95172FE: serdata_default_from_sample_plist (ddsi_serdata_default.c:456)
==16717== by 0x951E815: ddsi_serdata_from_sample (ddsi_serdata.h:167)
==16717== by 0x951E815: write_mpayload (q_ddsi_discovery.c:179)
==16717== by 0x951F72A: spdp_write (q_ddsi_discovery.c:324)
==16717== by 0x9529DD5: new_participant_guid (q_entity.c:636)
==16717== by 0x9554C0A: dds_create_participant (dds_participant.c:186)
==16717== by 0x925808D: ref_ppant() (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x925BCFE: rmw_create_guard_condition (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x5191B9D: __rcl_guard_condition_init_from_rmw_impl (guard_condition.c:86)
==16717== by 0x4EEA338: rclcpp::node_interfaces::NodeBase::NodeBase(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&, std::shared_ptr<rclcpp::Context>, rcl_node_options_t const&, bool) (node_base.cpp:48)
==16717==
[INFO] [talker]: Publishing: 'Hello World: 11'
==16717== Syscall param sendmsg(msg.msg_iov[6]) points to uninitialised byte(s)
==16717== at 0x5E92D37: sendmsg (sendmsg.c:28)
==16717== by 0x9576038: ddsrt_sendmsg (socket.c:534)
==16717== by 0x9514859: ddsi_udp_conn_write (ddsi_udp.c:149)
==16717== by 0x9550F4D: ddsi_conn_write (ddsi_tran.h:234)
==16717== by 0x9550F4D: nn_xpack_send1 (q_xmsg.c:1290)
==16717== by 0x95516EE: nn_xpack_send_real.part.2 (q_xmsg.c:1379)
==16717== by 0x954F33B: xevent_thread (q_xevent.c:1343)
==16717== by 0x954B596: create_thread_wrapper (q_thread.c:192)
==16717== by 0x95768D7: os_startRoutineWrapper (threads.c:151)
==16717== by 0x63746DA: start_thread (pthread_create.c:463)
==16717== by 0x5E9188E: clone (clone.S:95)
==16717== Address 0x9144f25 is 133 bytes inside a block of size 240 alloc'd
==16717== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16717== by 0x9574B68: ddsrt_malloc (heap.c:26)
==16717== by 0x9516E39: serdata_default_allocnew (ddsi_serdata_default.c:243)
==16717== by 0x9516E39: serdata_default_new_size (ddsi_serdata_default.c:254)
==16717== by 0x95175D7: serdata_default_new (ddsi_serdata_default.c:262)
==16717== by 0x95175D7: serdata_default_from_sample_rawcdr (ddsi_serdata_default.c:510)
==16717== by 0x954F2C6: ddsi_serdata_from_sample (ddsi_serdata.h:167)
==16717== by 0x954F2C6: write_pmd_message (q_xevent.c:1126)
==16717== by 0x954F2C6: handle_xevk_pmd_update (q_xevent.c:1146)
==16717== by 0x954F2C6: handle_individual_xevent (q_xevent.c:1200)
==16717== by 0x954F2C6: handle_timed_xevent (q_xevent.c:1242)
==16717== by 0x954F2C6: handle_xevents (q_xevent.c:1300)
==16717== by 0x954F2C6: xevent_thread (q_xevent.c:1340)
==16717== by 0x954B596: create_thread_wrapper (q_thread.c:192)
==16717== by 0x95768D7: os_startRoutineWrapper (threads.c:151)
==16717== by 0x63746DA: start_thread (pthread_create.c:463)
==16717== by 0x5E9188E: clone (clone.S:95)
==16717==
==16717== Thread 1:
==16717== Invalid write of size 8
==16717== at 0x4C367E3: memmove (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16717== by 0x58F3FB3: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==16717== by 0x9265DDC: cycdeser::deserialize(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x926596E: cycdeser::operator>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x927387F: void rmw_cyclonedds_cpp::deserialize_field<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(rosidl_typesupport_introspection_cpp::MessageMember const*, void*, cycdeser&, bool) (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x926CAF4: rmw_cyclonedds_cpp::TypeSupport<rosidl_typesupport_introspection_cpp::MessageMembers>::deserializeROSmessage(cycdeser&, rosidl_typesupport_introspection_cpp::MessageMembers const*, void*, bool) (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x926CC18: rmw_cyclonedds_cpp::TypeSupport<rosidl_typesupport_introspection_cpp::MessageMembers>::deserializeROSmessage(cycdeser&, rosidl_typesupport_introspection_cpp::MessageMembers const*, void*, bool) (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x9268E62: rmw_cyclonedds_cpp::TypeSupport<rosidl_typesupport_introspection_cpp::MessageMembers>::deserializeROSmessage(cycdeser&, void*, std::function<void (cycdeser&)>) (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x92B2CF3: serdata_rmw_to_sample(ddsi_serdata const*, void*, void**, void*) (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x955CA2A: ddsi_serdata_to_sample (ddsi_serdata.h:187)
==16717== by 0x955CA2A: dds_rhc_take_w_qminv (dds_rhc.c:1929)
==16717== by 0x955CA2A: dds_rhc_take (dds_rhc.c:2584)
==16717== by 0x9564728: dds_read_impl (dds_read.c:180)
==16717== by 0x9564D9F: dds_take (dds_read.c:489)
==16717== Address 0x0 is not stack'd, malloc'd or (recently) free'd
==16717==
==16717==
==16717== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==16717== Access not within mapped region at address 0x0
==16717== at 0x4C367E3: memmove (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16717== by 0x58F3FB3: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==16717== by 0x9265DDC: cycdeser::deserialize(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x926596E: cycdeser::operator>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x927387F: void rmw_cyclonedds_cpp::deserialize_field<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(rosidl_typesupport_introspection_cpp::MessageMember const*, void*, cycdeser&, bool) (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x926CAF4: rmw_cyclonedds_cpp::TypeSupport<rosidl_typesupport_introspection_cpp::MessageMembers>::deserializeROSmessage(cycdeser&, rosidl_typesupport_introspection_cpp::MessageMembers const*, void*, bool) (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x926CC18: rmw_cyclonedds_cpp::TypeSupport<rosidl_typesupport_introspection_cpp::MessageMembers>::deserializeROSmessage(cycdeser&, rosidl_typesupport_introspection_cpp::MessageMembers const*, void*, bool) (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x9268E62: rmw_cyclonedds_cpp::TypeSupport<rosidl_typesupport_introspection_cpp::MessageMembers>::deserializeROSmessage(cycdeser&, void*, std::function<void (cycdeser&)>) (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x92B2CF3: serdata_rmw_to_sample(ddsi_serdata const*, void*, void**, void*) (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16717== by 0x955CA2A: ddsi_serdata_to_sample (ddsi_serdata.h:187)
==16717== by 0x955CA2A: dds_rhc_take_w_qminv (dds_rhc.c:1929)
==16717== by 0x955CA2A: dds_rhc_take (dds_rhc.c:2584)
==16717== by 0x9564728: dds_read_impl (dds_read.c:180)
==16717== by 0x9564D9F: dds_take (dds_read.c:489)
==16717== If you believe this happened as a result of a stack
==16717== overflow in your program's main thread (unlikely but
==16717== possible), you can try to increase the size of the
==16717== main thread stack using the --main-stacksize= flag.
==16717== The main thread stack size used in this run was 8388608.
==16717==
==16717== HEAP SUMMARY:
==16717== in use at exit: 3,658,341 bytes in 2,309 blocks
==16717== total heap usage: 4,706 allocs, 2,397 frees, 4,216,595 bytes allocated
==16717==
==16717== LEAK SUMMARY:
==16717== definitely lost: 0 bytes in 0 blocks
==16717== indirectly lost: 0 bytes in 0 blocks
==16717== possibly lost: 21,150 bytes in 23 blocks
==16717== still reachable: 3,637,191 bytes in 2,286 blocks
==16717== suppressed: 0 bytes in 0 blocks
==16717== Rerun with --leak-check=full to see details of leaked memory
==16717==
==16717== For counts of detected and suppressed errors, rerun with: -v
==16717== Use --track-origins=yes to see where uninitialised values come from
==16717== ERROR SUMMARY: 12 errors from 5 contexts (suppressed: 0 from 0)
Segmentation fault
root@ub80c134adc2254:/opt/workspace#
This is the output when I just launch the talker, wait until it sends 3 messages, and then use Ctrl+C to stop it:
root@ub80c134adc2254:/opt/workspace# RMW_IMPLEMENTATION=rmw_cyclonedds_cpp valgrind /opt/ros/dashing/lib/demo_nodes_cpp/talker
==16748== Memcheck, a memory error detector
==16748== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==16748== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==16748== Command: /opt/ros/dashing/lib/demo_nodes_cpp/talker
==16748==
==16748== Thread 6 tev:
==16748== Syscall param sendmsg(msg.msg_iov[2]) points to uninitialised byte(s)
==16748== at 0x5E92D37: sendmsg (sendmsg.c:28)
==16748== by 0x9576038: ddsrt_sendmsg (socket.c:534)
==16748== by 0x9514859: ddsi_udp_conn_write (ddsi_udp.c:149)
==16748== by 0x9550F4D: ddsi_conn_write (ddsi_tran.h:234)
==16748== by 0x9550F4D: nn_xpack_send1 (q_xmsg.c:1290)
==16748== by 0x956FB5C: ddsrt_avl_walk (avl.c:649)
==16748== by 0x951A0AE: addrset_forall_count (q_addrset.c:530)
==16748== by 0x95517C6: nn_xpack_send_real.part.2 (q_xmsg.c:1391)
==16748== by 0x9552C49: nn_xpack_addmsg (q_xmsg.c:1636)
==16748== by 0x954E6D3: handle_xevk_msg (q_xevent.c:562)
==16748== by 0x954E6D3: handle_individual_xevent_nt (q_xevent.c:1216)
==16748== by 0x954F1A9: handle_nontimed_xevent (q_xevent.c:1261)
==16748== by 0x954F1A9: handle_xevents (q_xevent.c:1312)
==16748== by 0x954F1A9: xevent_thread (q_xevent.c:1340)
==16748== by 0x954B596: create_thread_wrapper (q_thread.c:192)
==16748== by 0x95768D7: os_startRoutineWrapper (threads.c:151)
==16748== Address 0x912c67c is 300 bytes inside a block of size 496 alloc'd
==16748== at 0x4C31D2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16748== by 0x9574BE8: ddsrt_realloc (heap.c:65)
==16748== by 0x951727B: serdata_default_append (ddsi_serdata_default.c:94)
==16748== by 0x951727B: serdata_default_append_aligned (ddsi_serdata_default.c:111)
==16748== by 0x951727B: serdata_default_append_blob.constprop.0 (ddsi_serdata_default.c:121)
==16748== by 0x95172FE: serdata_default_from_sample_plist (ddsi_serdata_default.c:456)
==16748== by 0x951E815: ddsi_serdata_from_sample (ddsi_serdata.h:167)
==16748== by 0x951E815: write_mpayload (q_ddsi_discovery.c:179)
==16748== by 0x951F72A: spdp_write (q_ddsi_discovery.c:324)
==16748== by 0x9529DD5: new_participant_guid (q_entity.c:636)
==16748== by 0x9554C0A: dds_create_participant (dds_participant.c:186)
==16748== by 0x925808D: ref_ppant() (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x925BCFE: rmw_create_guard_condition (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x5191B9D: __rcl_guard_condition_init_from_rmw_impl (guard_condition.c:86)
==16748== by 0x4EEA338: rclcpp::node_interfaces::NodeBase::NodeBase(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&, std::shared_ptr<rclcpp::Context>, rcl_node_options_t const&, bool) (node_base.cpp:48)
==16748==
[INFO] [talker]: Publishing: 'Hello World: 1'
[INFO] [talker]: Publishing: 'Hello World: 2'
[INFO] [talker]: Publishing: 'Hello World: 3'
^C[INFO] [rclcpp]: signal_handler(signal_value=2)
==16748== Thread 1:
==16748== Invalid read of size 8
==16748== at 0x925BE58: rmw_trigger_guard_condition (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x9258267: ggcallback(int, void*) (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x9555930: dds_reader_data_available_cb (dds_reader.c:199)
==16748== by 0x955B184: dds_rhc_store (dds_rhc.c:1451)
==16748== by 0x956A445: try_store (dds_write.c:79)
==16748== by 0x956A57C: deliver_locally (dds_write.c:110)
==16748== by 0x956ABEA: dds_writecdr_impl_lowlevel (dds_write.c:232)
==16748== by 0x952B4A2: delete_reader (q_entity.c:3421)
==16748== by 0x9555672: dds_reader_close (dds_reader.c:62)
==16748== by 0x9560B07: dds_delete_impl (dds_entity.c:222)
==16748== by 0x9560A8C: dds_delete_impl (dds_entity.c:207)
==16748== by 0x9560C56: dds_delete_impl (dds_entity.c:207)
==16748== Address 0x9139d70 is 0 bytes inside a block of size 24 free'd
==16748== at 0x4C3123B: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16748== by 0x925BE18: rmw_destroy_guard_condition (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x9258D7E: rmw_destroy_node (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x5196BC4: rcl_node_fini (node.c:432)
==16748== by 0x4EE9859: rclcpp::node_interfaces::NodeBase::NodeBase(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&, std::shared_ptr<rclcpp::Context>, rcl_node_options_t const&, bool)::{lambda(rcl_node_t*)#2}::operator()(rcl_node_t*) const [clone .isra.17] (node_base.cpp:125)
==16748== by 0x4EE9EF0: _M_release (shared_ptr_base.h:154)
==16748== by 0x4EE9EF0: ~__shared_count (shared_ptr_base.h:684)
==16748== by 0x4EE9EF0: ~__shared_ptr (shared_ptr_base.h:1123)
==16748== by 0x4EE9EF0: ~shared_ptr (shared_ptr.h:93)
==16748== by 0x4EE9EF0: rclcpp::node_interfaces::NodeBase::~NodeBase() (node_base.cpp:141)
==16748== by 0x4EE9FF8: rclcpp::node_interfaces::NodeBase::~NodeBase() (node_base.cpp:153)
==16748== by 0x4EE0D77: _M_release (shared_ptr_base.h:154)
==16748== by 0x4EE0D77: ~__shared_count (shared_ptr_base.h:684)
==16748== by 0x4EE0D77: ~__shared_ptr (shared_ptr_base.h:1123)
==16748== by 0x4EE0D77: ~shared_ptr (shared_ptr.h:93)
==16748== by 0x4EE0D77: rclcpp::Node::~Node() (node.cpp:195)
==16748== by 0x110B75: std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() (shared_ptr_base.h:154)
==16748== by 0x10E681: ~__shared_count (shared_ptr_base.h:684)
==16748== by 0x10E681: ~__shared_ptr (shared_ptr_base.h:1123)
==16748== by 0x10E681: ~shared_ptr (shared_ptr.h:93)
==16748== by 0x10E681: main (talker.cpp:98)
==16748== Block was alloc'd at
==16748== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16748== by 0x925BD4B: rmw_create_guard_condition (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x92588A1: rmw_create_node (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x51965CC: rcl_node_init (node.c:321)
==16748== by 0x4EEA3C1: rclcpp::node_interfaces::NodeBase::NodeBase(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&, std::shared_ptr<rclcpp::Context>, rcl_node_options_t const&, bool) (node_base.cpp:66)
==16748== by 0x4EE3D0D: rclcpp::Node::Node(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&, rclcpp::NodeOptions const&) (node.cpp:116)
==16748== by 0x4EE58F0: rclcpp::Node::Node(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rclcpp::NodeOptions const&) (node.cpp:103)
==16748== by 0x112AEE: Talker::Talker(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (talker.cpp:43)
==16748== by 0x1136ED: construct<Talker, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (new_allocator.h:136)
==16748== by 0x1136ED: construct<Talker, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (alloc_traits.h:475)
==16748== by 0x1136ED: _Sp_counted_ptr_inplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (shared_ptr_base.h:526)
==16748== by 0x1136ED: __shared_count<Talker, std::allocator<Talker>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (shared_ptr_base.h:637)
==16748== by 0x1136ED: std::__shared_ptr<Talker, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<Talker>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(std::_Sp_make_shared_tag, std::allocator<Talker> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) (shared_ptr_base.h:1295)
==16748== by 0x10E5CB: shared_ptr<std::allocator<Talker>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (shared_ptr.h:344)
==16748== by 0x10E5CB: allocate_shared<Talker, std::allocator<Talker>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (shared_ptr.h:691)
==16748== by 0x10E5CB: make_shared<Talker, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (shared_ptr.h:707)
==16748== by 0x10E5CB: main (talker.cpp:98)
==16748==
==16748== Invalid read of size 8
==16748== at 0x925BE8A: rmw_trigger_guard_condition (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x9258267: ggcallback(int, void*) (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x9555930: dds_reader_data_available_cb (dds_reader.c:199)
==16748== by 0x955B184: dds_rhc_store (dds_rhc.c:1451)
==16748== by 0x956A445: try_store (dds_write.c:79)
==16748== by 0x956A57C: deliver_locally (dds_write.c:110)
==16748== by 0x956ABEA: dds_writecdr_impl_lowlevel (dds_write.c:232)
==16748== by 0x952B4A2: delete_reader (q_entity.c:3421)
==16748== by 0x9555672: dds_reader_close (dds_reader.c:62)
==16748== by 0x9560B07: dds_delete_impl (dds_entity.c:222)
==16748== by 0x9560A8C: dds_delete_impl (dds_entity.c:207)
==16748== by 0x9560C56: dds_delete_impl (dds_entity.c:207)
==16748== Address 0x9139d78 is 8 bytes inside a block of size 24 free'd
==16748== at 0x4C3123B: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16748== by 0x925BE18: rmw_destroy_guard_condition (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x9258D7E: rmw_destroy_node (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x5196BC4: rcl_node_fini (node.c:432)
==16748== by 0x4EE9859: rclcpp::node_interfaces::NodeBase::NodeBase(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&, std::shared_ptr<rclcpp::Context>, rcl_node_options_t const&, bool)::{lambda(rcl_node_t*)#2}::operator()(rcl_node_t*) const [clone .isra.17] (node_base.cpp:125)
==16748== by 0x4EE9EF0: _M_release (shared_ptr_base.h:154)
==16748== by 0x4EE9EF0: ~__shared_count (shared_ptr_base.h:684)
==16748== by 0x4EE9EF0: ~__shared_ptr (shared_ptr_base.h:1123)
==16748== by 0x4EE9EF0: ~shared_ptr (shared_ptr.h:93)
==16748== by 0x4EE9EF0: rclcpp::node_interfaces::NodeBase::~NodeBase() (node_base.cpp:141)
==16748== by 0x4EE9FF8: rclcpp::node_interfaces::NodeBase::~NodeBase() (node_base.cpp:153)
==16748== by 0x4EE0D77: _M_release (shared_ptr_base.h:154)
==16748== by 0x4EE0D77: ~__shared_count (shared_ptr_base.h:684)
==16748== by 0x4EE0D77: ~__shared_ptr (shared_ptr_base.h:1123)
==16748== by 0x4EE0D77: ~shared_ptr (shared_ptr.h:93)
==16748== by 0x4EE0D77: rclcpp::Node::~Node() (node.cpp:195)
==16748== by 0x110B75: std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() (shared_ptr_base.h:154)
==16748== by 0x10E681: ~__shared_count (shared_ptr_base.h:684)
==16748== by 0x10E681: ~__shared_ptr (shared_ptr_base.h:1123)
==16748== by 0x10E681: ~shared_ptr (shared_ptr.h:93)
==16748== by 0x10E681: main (talker.cpp:98)
==16748== Block was alloc'd at
==16748== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16748== by 0x925BD4B: rmw_create_guard_condition (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x92588A1: rmw_create_node (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x51965CC: rcl_node_init (node.c:321)
==16748== by 0x4EEA3C1: rclcpp::node_interfaces::NodeBase::NodeBase(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&, std::shared_ptr<rclcpp::Context>, rcl_node_options_t const&, bool) (node_base.cpp:66)
==16748== by 0x4EE3D0D: rclcpp::Node::Node(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&, rclcpp::NodeOptions const&) (node.cpp:116)
==16748== by 0x4EE58F0: rclcpp::Node::Node(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rclcpp::NodeOptions const&) (node.cpp:103)
==16748== by 0x112AEE: Talker::Talker(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (talker.cpp:43)
==16748== by 0x1136ED: construct<Talker, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (new_allocator.h:136)
==16748== by 0x1136ED: construct<Talker, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (alloc_traits.h:475)
==16748== by 0x1136ED: _Sp_counted_ptr_inplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (shared_ptr_base.h:526)
==16748== by 0x1136ED: __shared_count<Talker, std::allocator<Talker>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (shared_ptr_base.h:637)
==16748== by 0x1136ED: std::__shared_ptr<Talker, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<Talker>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(std::_Sp_make_shared_tag, std::allocator<Talker> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) (shared_ptr_base.h:1295)
==16748== by 0x10E5CB: shared_ptr<std::allocator<Talker>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (shared_ptr.h:344)
==16748== by 0x10E5CB: allocate_shared<Talker, std::allocator<Talker>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (shared_ptr.h:691)
==16748== by 0x10E5CB: make_shared<Talker, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (shared_ptr.h:707)
==16748== by 0x10E5CB: main (talker.cpp:98)
==16748==
==16748== Invalid read of size 4
==16748== at 0x925BE96: rmw_trigger_guard_condition (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x9258267: ggcallback(int, void*) (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x9555930: dds_reader_data_available_cb (dds_reader.c:199)
==16748== by 0x955B184: dds_rhc_store (dds_rhc.c:1451)
==16748== by 0x956A445: try_store (dds_write.c:79)
==16748== by 0x956A57C: deliver_locally (dds_write.c:110)
==16748== by 0x956ABEA: dds_writecdr_impl_lowlevel (dds_write.c:232)
==16748== by 0x952B4A2: delete_reader (q_entity.c:3421)
==16748== by 0x9555672: dds_reader_close (dds_reader.c:62)
==16748== by 0x9560B07: dds_delete_impl (dds_entity.c:222)
==16748== by 0x9560A8C: dds_delete_impl (dds_entity.c:207)
==16748== by 0x9560C56: dds_delete_impl (dds_entity.c:207)
==16748== Address 0x9139ab0 is 0 bytes inside a block of size 4 free'd
==16748== at 0x4C3123B: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16748== by 0x925BE07: rmw_destroy_guard_condition (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x9258D7E: rmw_destroy_node (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x5196BC4: rcl_node_fini (node.c:432)
==16748== by 0x4EE9859: rclcpp::node_interfaces::NodeBase::NodeBase(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&, std::shared_ptr<rclcpp::Context>, rcl_node_options_t const&, bool)::{lambda(rcl_node_t*)#2}::operator()(rcl_node_t*) const [clone .isra.17] (node_base.cpp:125)
==16748== by 0x4EE9EF0: _M_release (shared_ptr_base.h:154)
==16748== by 0x4EE9EF0: ~__shared_count (shared_ptr_base.h:684)
==16748== by 0x4EE9EF0: ~__shared_ptr (shared_ptr_base.h:1123)
==16748== by 0x4EE9EF0: ~shared_ptr (shared_ptr.h:93)
==16748== by 0x4EE9EF0: rclcpp::node_interfaces::NodeBase::~NodeBase() (node_base.cpp:141)
==16748== by 0x4EE9FF8: rclcpp::node_interfaces::NodeBase::~NodeBase() (node_base.cpp:153)
==16748== by 0x4EE0D77: _M_release (shared_ptr_base.h:154)
==16748== by 0x4EE0D77: ~__shared_count (shared_ptr_base.h:684)
==16748== by 0x4EE0D77: ~__shared_ptr (shared_ptr_base.h:1123)
==16748== by 0x4EE0D77: ~shared_ptr (shared_ptr.h:93)
==16748== by 0x4EE0D77: rclcpp::Node::~Node() (node.cpp:195)
==16748== by 0x110B75: std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() (shared_ptr_base.h:154)
==16748== by 0x10E681: ~__shared_count (shared_ptr_base.h:684)
==16748== by 0x10E681: ~__shared_ptr (shared_ptr_base.h:1123)
==16748== by 0x10E681: ~shared_ptr (shared_ptr.h:93)
==16748== by 0x10E681: main (talker.cpp:98)
==16748== Block was alloc'd at
==16748== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==16748== by 0x925BCEF: rmw_create_guard_condition (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x92588A1: rmw_create_node (in /opt/workspace/install/lib/librmw_cyclonedds_cpp.so)
==16748== by 0x51965CC: rcl_node_init (node.c:321)
==16748== by 0x4EEA3C1: rclcpp::node_interfaces::NodeBase::NodeBase(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&, std::shared_ptr<rclcpp::Context>, rcl_node_options_t const&, bool) (node_base.cpp:66)
==16748== by 0x4EE3D0D: rclcpp::Node::Node(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&, rclcpp::NodeOptions const&) (node.cpp:116)
==16748== by 0x4EE58F0: rclcpp::Node::Node(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rclcpp::NodeOptions const&) (node.cpp:103)
==16748== by 0x112AEE: Talker::Talker(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (talker.cpp:43)
==16748== by 0x1136ED: construct<Talker, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (new_allocator.h:136)
==16748== by 0x1136ED: construct<Talker, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (alloc_traits.h:475)
==16748== by 0x1136ED: _Sp_counted_ptr_inplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (shared_ptr_base.h:526)
==16748== by 0x1136ED: __shared_count<Talker, std::allocator<Talker>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (shared_ptr_base.h:637)
==16748== by 0x1136ED: std::__shared_ptr<Talker, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<Talker>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(std::_Sp_make_shared_tag, std::allocator<Talker> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) (shared_ptr_base.h:1295)
==16748== by 0x10E5CB: shared_ptr<std::allocator<Talker>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (shared_ptr.h:344)
==16748== by 0x10E5CB: allocate_shared<Talker, std::allocator<Talker>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (shared_ptr.h:691)
==16748== by 0x10E5CB: make_shared<Talker, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (shared_ptr.h:707)
==16748== by 0x10E5CB: main (talker.cpp:98)
==16748==
==16748==
==16748== HEAP SUMMARY:
==16748== in use at exit: 3,337,702 bytes in 846 blocks
==16748== total heap usage: 3,493 allocs, 2,647 frees, 4,102,839 bytes allocated
==16748==
==16748== LEAK SUMMARY:
==16748== definitely lost: 736 bytes in 22 blocks
==16748== indirectly lost: 1,033 bytes in 28 blocks
==16748== possibly lost: 20,830 bytes in 22 blocks
==16748== still reachable: 3,315,103 bytes in 774 blocks
==16748== suppressed: 0 bytes in 0 blocks
==16748== Rerun with --leak-check=full to see details of leaked memory
==16748==
==16748== For counts of detected and suppressed errors, rerun with: -v
==16748== Use --track-origins=yes to see where uninitialised values come from
==16748== ERROR SUMMARY: 7 errors from 4 contexts (suppressed: 0 from 0)
root@ub80c134adc2254:/opt/workspace#