eProsima/FIROS2

helloworld_ros2 segmentation fault error

Opened this issue · 0 comments

Hello!
I'm trying to execute the helloworld_ros2 example (feature/TCP_DynTypes branch) with ros2 crystal on Ubuntu 18.04 and i get a segmentation fault. The helloworld_orion example works perfectly.
I execute: $ ros2 run --prefix 'gdb -ex run --args' firos2 firos2 config.xml
Output:

Reading symbols from /home/ros2/firos2/install/firos2/lib/firos2/firos2...done.
Starting program: /home/ros2/firos2/install/firos2/lib/firos2/firos2 config.xml
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
INFO: Profiles parsed successfully.
[New Thread 0x7ffff0350700 (LWP 10294)]

Thread 2 "firos2" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff0350700 (LWP 10294)]
---Type <return> to continue, or q <return> to quit---
0x00007ffff765ada8 in asio::detail::epoll_reactor::shutdown_service() () from /opt/ros/crystal/lib/libfastrtps.so.1
(gdb) 
(gdb) where
#0  0x00007ffff765ada8 in asio::detail::epoll_reactor::shutdown_service() () from /opt/ros/crystal/lib/libfastrtps.so.1
#1  0x00007ffff06786e0 in asio::detail::service_registry::shutdown_services (this=0x7fffe8000b20)
    at /home/ros2/firos2/thirdparty/asio/asio/include/asio/detail/impl/service_registry.ipp:43
#2  0x00007ffff06787df in asio::execution_context::shutdown (
    this=0x7ffff034f2e0)
    at /home/ros2/firos2/thirdparty/asio/asio/include/asio/impl/execution_context.ipp:40
#3  0x00007ffff0678783 in asio::execution_context::~execution_context (this=0x7ffff034f2e0, __in_chrg=<optimized out>)
    at /home/ros2/firos2/thirdparty/asio/asio/include/asio/impl/execution_context.ipp:33
#4  0x00007ffff0681dee in asio::io_context::~io_context (
    this=0x7ffff034f2e0, __in_chrg=<optimized out>)
    at /home/ros2/firos2/thirdparty/asio/asio/include/asio/impl/io_context.ipp:54
#5  0x00007ffff067d839 in NGSIv2Subscriber::listener (
    this=0x5555559bc0e0)
    at /home/ros2/firos2/src/NGSIv2/NGSIv2Subscriber.cpp:241
#6  0x00007ffff0685e46 in std::__invoke_impl<void, void (NGSIv2Sub---Type <return> to continue, or q <return> to quit---
scriber::*)(), NGSIv2Subscriber*> (
    __f=@0x5555559bc350: (void (NGSIv2Subscriber::*)(NGSIv2Subscriber * const)) 0x7ffff067d2a8 <NGSIv2Subscriber::listener()>, 
    __t=@0x5555559bc348: 0x5555559bc0e0)
    at /usr/include/c++/7/bits/invoke.h:73
#7  0x00007ffff0684c17 in std::__invoke<void (NGSIv2Subscriber::*)(), NGSIv2Subscriber*> (
    __fn=@0x5555559bc350: (void (NGSIv2Subscriber::*)(NGSIv2Subscriber * const)) 0x7ffff067d2a8 <NGSIv2Subscriber::listener()>, 
    __args#0=@0x5555559bc348: 0x5555559bc0e0)
    at /usr/include/c++/7/bits/invoke.h:95
#8  0x00007ffff06888e7 in std::thread::_Invoker<std::tuple<void (NGSIv2Subscriber::*)(), NGSIv2Subscriber*> >::_M_invoke<0ul, 1ul>
    (this=0x5555559bc348) at /usr/include/c++/7/thread:234
#9  0x00007ffff06884a8 in std::thread::_Invoker<std::tuple<void (NGSIv2Subscriber::*)(), NGSIv2Subscriber*> >::operator() (
    this=0x5555559bc348) at /usr/include/c++/7/thread:243
#10 0x00007ffff0687bbe in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (NGSIv2Subscriber::*)(), NGSIv2Subscriber*> > >::_M_run (this=0x5555559bc340)
    at /usr/include/c++/7/thread:186
#11 0x00007ffff6fe557f in ?? ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff64f56db in start_thread (arg=0x7ffff0350700)
    at pthread_create.c:463
#13 0x00007ffff6a4088f in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95