You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If compile fastdds with asan, make fastdds as ros2 middleware, and run ros2 python example such as "examples_rclpy_minimal_publisher " package with environment "export LD_PRELOAD=/usr/lib/gcc/aarch64-linux-gnu/9/libasan.so", fastdds will stuck when create transport. Sometimes udp transport , sometimes SHM transport. Here is stack:
(gdb) bt
#0 0x0000ffffbb57160c in __sanitizer::atomic_load<__sanitizer::atomic_uint8_t> (mo=__sanitizer::memory_order_acquire, a=0xffffba5e3038)
at ../../../../src/libsanitizer/sanitizer_common/sanitizer_atomic_clang_other.h:43
#1 __sanitizer::atomic_load<__sanitizer::atomic_uint8_t> (mo=__sanitizer::memory_order_acquire, a=0xffffba5e3038)
at ../../../../src/libsanitizer/sanitizer_common/sanitizer_atomic_clang_other.h:24
#2 __asan::AsanThread::GetStackBounds (this=0xffffba5e3000) at ../../../../src/libsanitizer/asan/asan_thread.cc:162
#3 __asan::AsanThread::stack_top (this=this@entry=0xffffba5e3000) at ../../../../src/libsanitizer/asan/asan_thread.cc:178
#4 0x0000ffffbb56fadc in __asan_handle_no_return () at ../../../../src/libsanitizer/asan/asan_rtl.cc:542
#5 0x0000ffffbb4b26c4 in __interceptor___cxa_throw (a=0xffffb3d2d380, b=0xffffaa79e2a8 <typeinfo for std::system_error>, c=0xffffaa692ba0 <std::system_error::~system_error()>)
at ../../../../src/libsanitizer/asan/asan_interceptors.cc:328
#6 0x0000ffffa254ee44 in void asio::detail::throw_exception<std::system_error>(std::system_error const&) () from /zeekr_plt/platform/ros/galactic/install/lib/libfastrtps.so.2.11
#7 0x0000ffffa2d305f8 in asio::detail::do_throw_error(std::error_code const&, char const*) [clone .isra.0] () from /zeekr_plt/platform/ros/galactic/install/lib/libfastrtps.so.2.11
#8 0x0000ffffa2d49a1c in eprosima::fastdds::rtps::UDPv4Transport::OpenAndBindInputSocket(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned short, bool) () from /zeekr_plt/platform/ros/galactic/install/lib/libfastrtps.so.2.11
#9 0x0000ffffa2d985a8 in eprosima::fastdds::rtps::UDPTransportInterface::CreateInputChannelResource(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, eprosima::fastrtps::rtps::Locator_t const&, bool, unsigned int, eprosima::fastdds::rtps::TransportReceiverInterface*) ()
from /zeekr_plt/platform/ros/galactic/install/lib/libfastrtps.so.2.11
#10 0x0000ffffa2dacfd8 in eprosima::fastdds::rtps::UDPTransportInterface::OpenAndBindInputSockets(eprosima::fastrtps::rtps::Locator_t const&, eprosima::fastdds::rtps::TransportReceiverInterface*, bool, unsigned int) () from /zeekr_plt/platform/ros/galactic/install/lib/libfastrtps.so.2.11
#11 0x0000ffffa2d45244 in eprosima::fastdds::rtps::UDPv4Transport::OpenInputChannel(eprosima::fastrtps::rtps::Locator_t const&, eprosima::fastdds::rtps::TransportReceiverInterface*, unsigned int) () from /zeekr_plt/platform/ros/galactic/install/lib/libfastrtps.so.2.11
#12 0x0000ffffa29aa324 in eprosima::fastrtps::rtps::ReceiverResource::ReceiverResource(eprosima::fastdds::rtps::TransportInterface&, eprosima::fastrtps::rtps::Locator_t const&, unsigned int) () from /zeekr_plt/platform/ros/galactic/install/lib/libfastrtps.so.2.11
#13 0x0000ffffa299e36c in eprosima::fastrtps::rtps::NetworkFactory::BuildReceiverResources(eprosima::fastrtps::rtps::Locator_t&, std::vector<std::shared_ptr<eprosima::fastrtps::rtps::ReceiverResource>, std::allocator<std::shared_ptr<eprosima::fastrtps::rtps::ReceiverResource> > >&, unsigned int) ()
from /zeekr_plt/platform/ros/galactic/install/lib/libfastrtps.so.2.11
#14 0x0000ffffa29b45a4 in eprosima::fastrtps::rtps::RTPSParticipantImpl::createReceiverResources(eprosima::fastdds::rtps::LocatorList&, bool, bool) ()
from /zeekr_plt/platform/ros/galactic/install/lib/libfastrtps.so.2.11
#15 0x0000ffffa29d10ac in eprosima::fastrtps::rtps::RTPSParticipantImpl::RTPSParticipantImpl(unsigned int, eprosima::fastrtps::rtps::RTPSParticipantAttributes const&, eprosima::fastrtps::rtps::GuidPrefix_t const&, eprosima::fastrtps::rtps::GuidPrefix_t const&, eprosima::fastrtps::rtps::RTPSParticipant*, eprosima::fastrtps::rtps::RTPSParticipantListener*) ()
from /zeekr_plt/platform/ros/galactic/install/lib/libfastrtps.so.2.11
#16 0x0000ffffa2a053c4 in eprosima::fastrtps::rtps::RTPSDomainImpl::createParticipant(unsigned int, bool, eprosima::fastrtps::rtps::RTPSParticipantAttributes const&, eprosima::fastrtps::rtps::RTPSParticipantListener*) () from /zeekr_plt/platform/ros/galactic/install/lib/libfastrtps.so.2.11
#17 0x0000ffffa2c5091c in eprosima::fastdds::dds::DomainParticipantImpl::enable() () from /zeekr_plt/platform/ros/galactic/install/lib/libfastrtps.so.2.11
#18 0x0000ffffa2c86008 in eprosima::fastdds::dds::DomainParticipant::enable() () from /zeekr_plt/platform/ros/galactic/install/lib/libfastrtps.so.2.11
#19 0x0000ffffa2c12fcc in eprosima::fastdds::dds::DomainParticipantFactory::create_participant(unsigned int, eprosima::fastdds::dds::DomainParticipantQos const&, eprosima::fastdds::dds::DomainParticipantListener*, eprosima::fastdds::dds::StatusMask const&) () from /zeekr_plt/platform/ros/galactic/install/lib/libfastrtps.so.2.11
#20 0x0000ffffb40aa164 in rmw_fastrtps_shared_cpp::create_participant(char const*, unsigned long, rmw_security_options_t const*, bool, char const*, rmw_dds_common::Context*, 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&) ()
from /zeekr_plt/platform/ros/galactic/install/lib/librmw_fastrtps_shared_cpp.so
Here is ros2 python example:
But if run ros2 c++ example, or make rti dds as ros2 middleware, there is not this problem.
Why ?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
If compile fastdds with asan, make fastdds as ros2 middleware, and run ros2 python example such as "examples_rclpy_minimal_publisher " package with environment "export LD_PRELOAD=/usr/lib/gcc/aarch64-linux-gnu/9/libasan.so", fastdds will stuck when create transport. Sometimes udp transport , sometimes SHM transport. Here is stack:
Here is ros2 python example:
But if run ros2 c++ example, or make rti dds as ros2 middleware, there is not this problem.
Why ?
Beta Was this translation helpful? Give feedback.
All reactions