Skip to content
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

SHM PORT Open Failed, Not enter try catch, to continue create PORT7413 #3878

Closed
1 task done
neil1899 opened this issue Sep 26, 2023 · 5 comments
Closed
1 task done
Labels

Comments

@neil1899
Copy link

neil1899 commented Sep 26, 2023

Is there an already existing issue for this?

  • I have searched the existing issues

Expected behavior

process could run success.

Current behavior

process crash
(gdb) where
#0 __pthread_kill_implementation (threadid=281473200406560, signo=signo@entry=6,
no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
#1 0x0000ffffa42af254 in __pthread_kill_internal (signo=6, threadid=)
at ./nptl/pthread_kill.c:78
#2 0x0000ffffa426a67c in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x0000ffffa4257130 in __GI_abort () at ./stdlib/abort.c:79
#4 0x0000ffffa43ec664 in _Unwind_SetGR () from /lib/aarch64-linux-gnu/libgcc_s.so.1
#5 0x0000ffffa43f0adc in __gcc_personality_v0 () from /lib/aarch64-linux-gnu/libgcc_s.so.1
#6 0x0000ffffa606c064 in _Unwind_RaiseException_Phase2 (exc=exc@entry=0xaaab0bcc0560,
context=context@entry=0xffffd1b99f00, frames_p=frames_p@entry=0xffffd1b9a2c0)
at /tmp/dgboter/bbs/rhev-vm2--rhe6x86_64/buildbot/rhe6x86_64--aarch64-none-linux-gnu/build/src/gcc/libgcc/unwind.inc:64
#7 0x0000ffffa606c578 in _Unwind_RaiseException (exc=0xaaab0bcc0560)
at /tmp/dgboter/bbs/rhev-vm2--rhe6x86_64/buildbot/rhe6x86_64--aarch64-none-linux-gnu/build/src/gcc/libgcc/unwind.inc:136
#8 0x0000ffffa605f3a4 in __cxxabiv1::__cxa_throw (obj=,
tinfo=0xffff8e7f93e8 ,
dest=0xffff8e32e390 boost::interprocess::interprocess_exception::~interprocess_exception())
at /tmp/dgboter/bbs/rhev-vm2--rhe6x86_64/buildbot/rhe6x86_64--aarch64-none-linux-gnu/build/src/gcc/libstdc++-v3/libsupc++/eh_throw.cc:90
#9 0x0000ffff8e6b76ac in boost::interprocess::shared_memory_object::priv_open_or_create (perm=...,
mode=boost::interprocess::read_write, filename=,
type=boost::interprocess::ipcdetail::DoOpen, this=0xffffd1b9aa78)
at ./thirdparty/boost/include/boost/interprocess/shared_memory_object.hpp:363
#10 boost::interprocess::shared_memory_object::shared_memory_object (
--Type for more, q to quit, c to continue without paging--
this=this@entry=0xffffd1b9aa78, name=,
mode=mode@entry=boost::interprocess::read_write)
at ./thirdparty/boost/include/boost/interprocess/shared_memory_object.hpp:83
#11 0x0000ffff8e6b8afc in boost::interprocess::ipcdetail::managed_open_or_create_impl<boost::interprocess::shared_memory_object, 16ul, true, false>::priv_open_or_create<boost::interprocess::ipcdetail::create_open_func<boost::interprocess::ipcdetail::basic_managed_memory_impl<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, unsigned int, unsigned long, 0ul>, 0ul>, boost::interprocess::iset_index, 16ul> > >(boost::interprocess::ipcdetail::create_enum_t, char const* const&, unsigned long, boost::interprocess::mode_t, void const*, boost::interprocess::permissions const&, boost::interprocess::ipcdetail::create_open_func<boost::interprocess::ipcdetail::basic_managed_memory_impl<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, unsigned int, unsigned long, 0ul>, 0ul>, boost::interprocess::iset_index, 16ul> >) [clone .constprop.0] (this=this@entry=0xaaab0bcc0458,
type=type@entry=boost::interprocess::ipcdetail::DoOpen,
id=@0xffffd1b9ab50: 0xaaab0bcc0480 "fastrtps_port7413", size=size@entry=0,
mode=mode@entry=boost::interprocess::read_write, perm=..., construct_func=..., addr=0x0)
at ./thirdparty/boost/include/boost/interprocess/detail/managed_open_or_create_impl.hpp:339
#12 0x0000ffff8e6b65a4 in boost::interprocess::ipcdetail::managed_open_or_create_impl<boost::interprocess::shared_memory_object, 16ul, true, false>::managed_open_or_create_impl<boost::interprocess::ipcdetail::create_open_func<boost::interprocess::ipcdetail::basic_managed_memory_impl<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, unsigned int, unsigned long, 0ul>, 0ul>, boost::interprocess::iset_index, 16ul> > > (
construct_func=..., construct_func=..., addr=0x0, mode=boost::interprocess::read_write,
id=@0xffffd1b9ab50: 0xaaab0bcc0480 "fastrtps_port7413", this=0xaaab0bcc0458)
at ./thirdparty/boost/include/boost/interprocess/detail/managed_open_or_create_impl.hpp:202
--Type for more, q to quit, c to continue without paging--
#13 boost::interprocess::basic_managed_shared_memory<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, unsigned int, unsigned long, 0ul>, 0ul>, boost::interprocess::iset_index>::basic_managed_shared_memory (addr=0x0,
name=, this=0xaaab0bcc0450)
at ./thirdparty/boost/include/boost/interprocess/managed_shared_memory.hpp:151
#14 eprosima::fastdds::rtps::SharedSegment<boost::interprocess::basic_managed_shared_memory<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, unsigned int, unsigned long, 0ul>, 0ul>, boost::interprocess::iset_index>, boost::interprocess::shared_memory_object>::SharedSegment(boost::interprocess::open_only_t, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) [clone .constprop.0] (
this=0xaaab0bcc04a0, name=...) at ./src/cpp/utils/shared_memory/SharedMemSegment.hpp:272
#15 0x0000ffff8e586b7c in eprosima::fastdds::rtps::SharedMemGlobal::open_port_internal (
this=0xaaab0bc893e8, port_id=7413, max_buffer_descriptors=512, healthy_check_timeout_ms=1000,
open_mode=eprosima::fastdds::rtps::SharedMemGlobal::Port::OpenMode::ReadExclusive,
regenerating_port=...) at ./src/cpp/rtps/transport/shared_mem/SharedMemGlobal.hpp:1078
#16 0x0000ffff8e58d084 in eprosima::fastdds::rtps::SharedMemGlobal::open_port (
open_mode=eprosima::fastdds::rtps::SharedMemGlobal::Port::OpenMode::ReadExclusive,
healthy_check_timeout_ms=, max_buffer_descriptors=,
port_id=, this=0xaaab0bc893e8)
at ./src/cpp/rtps/transport/shared_mem/SharedMemGlobal.hpp:991
#17 eprosima::fastdds::rtps::SharedMemManager::open_port (
open_mode=eprosima::fastdds::rtps::SharedMemGlobal::Port::OpenMode::ReadExclusive,
healthy_check_timeout_ms=, max_descriptors=,
port_id=, this=0xaaab0bc89360)
at ./src/cpp/rtps/transport/shared_mem/SharedMemManager.hpp:995
--Type for more, q to quit, c to continue without paging--
#18 eprosima::fastdds::rtps::SharedMemTransport::CreateInputChannelResource (this=0xaaab0bc89230,
locator=..., maxMsgSize=, receiver=0xaaab0bcc0290)
at ./src/cpp/rtps/transport/shared_mem/SharedMemTransport.cpp:319
#19 0x0000ffff8e58c640 in eprosima::fastdds::rtps::SharedMemTransport::OpenInputChannel (
this=0xaaab0bc89230, locator=..., receiver=0xaaab0bcc0290, maxMsgSize=4294967295)
at ./src/cpp/rtps/transport/shared_mem/SharedMemTransport.cpp:134
#20 0x0000ffff8e380ab0 in eprosima::fastrtps::rtps::ReceiverResource::ReceiverResource (
this=, transport=..., locator=..., max_recv_buffer_size=,
this=, transport=..., locator=..., max_recv_buffer_size=)
at ./src/cpp/rtps/network/ReceiverResource.cpp:41
#21 0x0000ffff8e380cd4 in eprosima::fastrtps::rtps::NetworkFactory::BuildReceiverResources (
this=this@entry=0xaaab0bc84040, local=...,
returned_resources_list=std::vector of length 0, capacity 1,
receiver_max_message_size=receiver_max_message_size@entry=4294967295)
at /usr/include/c++/11/bits/unique_ptr.h:173
#22 0x0000ffff8e385e54 in eprosima::fastrtps::rtps::RTPSParticipantImpl::createReceiverResources (
this=this@entry=0xaaab0bc83a70, Locator_list=..., ApplyMutation=ApplyMutation@entry=true,
RegisterReceiver=RegisterReceiver@entry=false)
at ./src/cpp/rtps/participant/RTPSParticipantImpl.cpp:1634
#23 0x0000ffff8e386bcc in eprosima::fastrtps::rtps::RTPSParticipantImpl::RTPSParticipantImpl (
this=, domain_id=, PParam=..., guidP=..., persistence_guid=...,
par=, plisten=, this=, domain_id=,
PParam=..., guidP=..., persistence_guid=..., par=, plisten=)
at ./src/cpp/rtps/participant/RTPSParticipantImpl.cpp:354
#24 0x0000ffff8e3919a8 in eprosima::fastrtps::rtps::RTPSDomain::createParticipant (domain_id=0,
--Type for more, q to quit, c to continue without paging--
enabled=false, attrs=..., listen=0xaaab0bc82b38) at ./src/cpp/rtps/RTPSDomain.cpp:182
#25 0x0000ffff8e3e6f20 in eprosima::fastdds::dds::DomainParticipantImpl::enable (
this=0xaaab0bc81f90) at ./src/cpp/fastdds/domain/DomainParticipantImpl.cpp:304
#26 0x0000ffff8e3e21ac in eprosima::fastdds::dds::DomainParticipant::enable (this=0xaaab0bc81540)
at ./src/cpp/fastdds/domain/DomainParticipant.cpp:95
#27 eprosima::fastdds::dds::DomainParticipant::enable (this=0xaaab0bc81540)
at ./src/cpp/fastdds/domain/DomainParticipant.cpp:87
#28 eprosima::fastdds::dds::DomainParticipantFactory::create_participant (
this=0xffff8e81aeb0 eprosima::fastdds::dds::DomainParticipantFactory::get_instance()::instance, did=, qos=..., listen=, mask=...)
at ./src/cpp/fastdds/domain/DomainParticipantFactory.cpp:249
#29 0x0000ffff8e8b1334 in ?? () from /opt/ros/humble/lib/librmw_fastrtps_shared_cpp.so
#30 0x0000ffff8e8bc588 in rmw_fastrtps_shared_cpp::create_participant(char const*, unsigned long, rmw_security_options_s const*, bool, char const*, rmw_dds_common::Context*) ()
from /opt/ros/humble/lib/librmw_fastrtps_shared_cpp.so
#31 0x0000ffff8e929178 in ?? () from /opt/ros/humble/lib/librmw_fastrtps_cpp.so
#32 0x0000ffff8e930cb8 in rmw_create_node () from /opt/ros/humble/lib/librmw_fastrtps_cpp.so
#33 0x0000ffffa5020e6c in rcl_node_init () from /opt/ros/humble/lib/librcl.so
#34 0x0000ffffa513bab4 in rclcpp::node_interfaces::NodeBase::NodeBase(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::shared_ptrrclcpp::Context, rcl_node_options_s const&, bool, bool) () from /opt/ros/humble/lib/librclcpp.so
#35 0x0000ffffa5133618 in rclcpp::Node::Node(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, rclcpp::NodeOptions const&) () from /opt/ros/humble/lib/librclcpp.so
--Type for more, q to quit, c to continue without paging--
#36 0x0000ffffa5134678 in rclcpp::Node::Node(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, rclcpp::NodeOptions const&) () from /opt/ros/humble/lib/librclcpp.so
#37 0x0000aaaadd4f5d40 in void __gnu_cxx::new_allocatorrclcpp::Node::construct<rclcpp::Node, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&>(rclcpp::Node*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) ()
#38 0x0000aaaadd4f2368 in void std::allocator_traits<std::allocatorrclcpp::Node >::construct<rclcpp::Node, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&>(std::allocatorrclcpp::Node&, rclcpp::Node*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) ()
#39 0x0000aaaadd4eead0 in std::_Sp_counted_ptr_inplace<rclcpp::Node, std::allocatorrclcpp::Node, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&>(std::allocatorrclcpp::Node, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) ()
#40 0x0000aaaadd4ea418 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<rclcpp::Node, std::allocatorrclcpp::Node, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&>(rclcpp::Node*&, std::_Sp_alloc_shared_tag<std::allocatorrclcpp::Node >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) ()
#41 0x0000aaaadd4e56c8 in std::__shared_ptr<rclcpp::Node, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocatorrclcpp::Node, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&>(std::_Sp_alloc_shared_tag<std::allocatorrclcpp::Node >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) ()
#42 0x0000aaaadd4df82c in std::shared_ptrrclcpp::Node::shared_ptr<std::allocatorrclcpp::Node, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&>(std::_Sp_alloc_shared_tag<std::allocatorrclcpp::Node >, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) ()
--Type for more, q to quit, c to continue without paging--
#43 0x0000aaaadd4d9a64 in std::shared_ptrrclcpp::Node std::allocate_shared<rclcpp::Node, std::allocatorrclcpp::Node, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&>(std::allocatorrclcpp::Node const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) ()
#44 0x0000aaaadd4d3f14 in std::shared_ptrrclcpp::Node std::make_shared<rclcpp::Node, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&>(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) ()
#45 0x0000aaaadd4cd968 in std::shared_ptrrclcpp::Node rclcpp::Node::make_shared<std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&>(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) ()
#46 0x0000aaaadd4c07ec in main ()

Steps to reproduce

  1. docker run
  2. build my project
  3. ros2 launch sensor_data_collection capture.py

Fast DDS version/commit

docker image : arm64v8/ros humble-ros-base-jammy

if i run with libfastrtsp(v 2.6.6) inside in docker image, it always crash, but if i use the so build by my self, it's ok

i wan't to know how build the so from http://packages.ros.org/ros2/ubuntu/pool/main/r/ros-humble-fastrtps/
could you share the build command

Platform/Architecture

Other. Please specify in Additional context section.

Transport layer

SHM

Additional context

arm64v8/ros:humble-ros-base-jammy docker image

XML configuration file

default, no xml file
No response

Relevant log output

No response

Network traffic capture

No response

@neil1899 neil1899 added the triage Issue pending classification label Sep 26, 2023
@neil1899
Copy link
Author

i found

        // Try to open
        auto port_segment = std::shared_ptr<SharedMemSegment>(
            new SharedMemSegment(boost::interprocess::open_only, port_segment_name.c_str()));

when open port7414 failed, not run in the try catch
so don't create_only

@neil1899 neil1899 changed the title fastdds crash SHM PORT Open Failed, Not enter try catch, to continue create PORT7413 Sep 27, 2023
@neil1899
Copy link
Author

@JesusPoderoso could you help me? thanks in advance!

@neil1899
Copy link
Author

http://packages.ros.org/ros2/ubuntu/pool/main/r/ros-humble-rmw-fastrtps-cpp/
this libray use which options of cmake ?

@JesusPoderoso
Copy link
Contributor

JesusPoderoso commented Sep 28, 2023

Hi @neil1899, thanks for your report.
Unfortunately, we do'nt know the steps ROS 2 has done to deploy the rmw_fastrtps. Please, consider opening this ticket in the rmw_fastrtps repository, and closing this one

@JLBuenoLopez JLBuenoLopez added invalid and removed triage Issue pending classification labels Oct 5, 2023
@JLBuenoLopez
Copy link
Contributor

I am labeling the issue as invalid as it does not seem to be related with Fast DDS library but on how it is being deployed by a thirdparty. Consequently, I am going to proceed and close the issue. @neil1899 feel free to reopen if finally this is caused by something on Fast DDS library (though it is not probable as you already report that it works when building from sources).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants