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

Integrate ros-foxglove-bridge #113

Merged
merged 31 commits into from
Jun 3, 2023
Merged

Integrate ros-foxglove-bridge #113

merged 31 commits into from
Jun 3, 2023

Conversation

mvukov
Copy link
Owner

@mvukov mvukov commented May 18, 2023

No description provided.

@mvukov mvukov changed the title Feature/foxglove Integrate ros-foxglove-bridge May 18, 2023
@mvukov
Copy link
Owner Author

mvukov commented May 18, 2023

  • One needs to use an up-to-date main from <> where Extract ROS 2 bridge header foxglove/ros-foxglove-bridge#228 is merged.
  • Connecting to foxglove studio works, e.g. with studio.foxglove.dev works, e.g. run bazel run //third_party/foxglove_bridge:foxglove_bridge -c dbg.
  • The bridge segfaults on unsubscribing topics/clients as e.g.
[gdb-1] [INFO] [1684348406.513115530] [foxglove_bridge]: Starting foxglove_bridge (humble, N/A@N/A) with WebSocket++/0.8.2
[gdb-1] [INFO] [1684348406.513775819] [foxglove_bridge]: [WS] Server running without TLS
[gdb-1] [New Thread 0x7fffeeffd700 (LWP 466294)]
[gdb-1] [INFO] [1684348406.514174527] [foxglove_bridge]: [WS] WebSocket server run loop started
[gdb-1] [New Thread 0x7fffee7fc700 (LWP 466295)]
[gdb-1] [INFO] [1684348406.514177195] [foxglove_bridge]: [WS] WebSocket server listening at ws://0.0.0.0:8765
[gdb-1] [New Thread 0x7fffedffb700 (LWP 466296)]
[gdb-1] [New Thread 0x7fffed7fa700 (LWP 466297)]
[gdb-1] [New Thread 0x7fffecff9700 (LWP 466298)]
[gdb-1] [New Thread 0x7fffcffff700 (LWP 466299)]
[gdb-1] [New Thread 0x7fffcf7fe700 (LWP 466300)]
[gdb-1] [New Thread 0x7fffceffd700 (LWP 466301)]
[gdb-1] [New Thread 0x7fffce7fc700 (LWP 466302)]
[gdb-1] [New Thread 0x7fffcdffb700 (LWP 466303)]
[gdb-1] [New Thread 0x7fffcd7fa700 (LWP 466304)]
[gdb-1] [New Thread 0x7fffccff9700 (LWP 466305)]
[gdb-1] [New Thread 0x7fffc7fff700 (LWP 466306)]
[gdb-1] [New Thread 0x7fffc77fe700 (LWP 466307)]
[gdb-1] [New Thread 0x7fffc6ffd700 (LWP 466308)]
[gdb-1] [INFO] [1684348409.354785587] [foxglove_bridge]: [WS] Client 127.0.0.1:36968 connected via /
[gdb-1] [INFO] [1684348409.467782372] [foxglove_bridge]: [WS] Subscribing to connection graph updates.
[gdb-1] [INFO] [1684348410.887012531] [foxglove_bridge]: Subscribing to topic "/rosout" (rcl_interfaces/msg/Log) on channel 1
[gdb-1] [INFO] [1684348414.771623751] [foxglove_bridge]: Unsubscribing from topic "/rosout" (rcl_interfaces/msg/Log) on channel 1
[gdb-1] 
[gdb-1] Thread 30 "foxglove_bridge" received signal SIGSEGV, Segmentation fault.
[gdb-1] [Switching to Thread 0x7fffc77fe700 (LWP 466307)]
[gdb-1] 0x000055555597f865 in std::char_traits<char>::length (
[gdb-1]     __s=0x7ffff4698fa0 <error: Cannot access memory at address 0x7ffff4698fa0>)
[gdb-1]     at /usr/include/c++/9/bits/char_traits.h:342
[gdb-1] 342		return __builtin_strlen(__s);
[gdb-1] #0  0x000055555597f865 in std::char_traits<char>::length (
[gdb-1]     __s=0x7ffff4698fa0 <error: Cannot access memory at address 0x7ffff4698fa0>)
[gdb-1]     at /usr/include/c++/9/bits/char_traits.h:342
[gdb-1] #1  0x0000555555980715 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::allocator<char> > (
[gdb-1]     this=0x7fffc77f9ce0, 
[gdb-1]     __s=0x7ffff4698fa0 <error: Cannot access memory at address 0x7ffff4698fa0>, __a=...) at /usr/include/c++/9/bits/basic_string.h:531
[gdb-1] #2  0x00007ffff78b4f3a in sertype_rmw_hash (tpcmn=0x7fff94005770)
[gdb-1]     at external/ros2_rmw_cyclonedds/rmw_cyclonedds_cpp/src/serdata.cpp:582
[gdb-1] #3  0x00007ffff78bca2a in ddsi_sertype_hash (a=0x7fff94005770)
[gdb-1]     at /home/madwolf/.cache/bazel/_bazel_madwolf/97780932f72da4bf457551d43f4a7dc9/sandbox/linux-sandbox/609/execroot/com_github_mvukov_rules_ros2/external/cyclonedds/src/core/ddsi/src/ddsi_sertype.c:60
[gdb-1] #4  0x00007ffff7948f03 in ddsrt_hh_remove (rt=0x5555561b2c40, 
[gdb-1]     keyobject=keyobject@entry=0x7fff94005770)
[gdb-1]     at /home/madwolf/.cache/bazel/_bazel_madwolf/97780932f72da4bf457551d43f4a7dc9/sandbox/linux-sandbox/609/execroot/com_github_mvukov_rules_ros2/external/cyclonedds/src/ddsrt/src/hopscotch.c:222
[gdb-1] #5  0x00007ffff7948fd9 in ddsrt_hh_remove_present (rt=<optimized out>, 
[gdb-1]     keyobject=keyobject@entry=0x7fff94005770)
[gdb-1]     at /home/madwolf/.cache/bazel/_bazel_madwolf/97780932f72da4bf457551d43f4a7dc9/sandbox/linux-sandbox/609/execroot/com_github_mvukov_rules_ros2/external/cyclonedds/src/ddsrt/src/hopscotch.c:251
[gdb-1] #6  0x00007ffff78bcb3f in ddsi_sertype_unref_locked (gv=<optimized out>, 
[gdb-1]     sertype=0x7fff94005770)
[gdb-1]     at /home/madwolf/.cache/bazel/_bazel_madwolf/97780932f72da4bf457551d43f4a7dc9/sandbox/linux-sandbox/609/execroot/com_github_mvukov_rules_ros2/external/cyclonedds/src/core/ddsi/src/ddsi_sertype.c:111
[gdb-1] #7  0x00007ffff78bcbef in ddsi_sertype_unref_registered_unlocked (
[gdb-1]     sertype=0x7fff94005770)
[gdb-1]     at /home/madwolf/.cache/bazel/_bazel_madwolf/97780932f72da4bf457551d43f4a7dc9/sandbox/linux-sandbox/609/execroot/com_github_mvukov_rules_ros2/external/cyclonedds/src/core/ddsi/src/ddsi_sertype.c:124
[gdb-1] #8  ddsi_sertype_unref (sertype=0x7fff94005770)
[gdb-1]     at /home/madwolf/.cache/bazel/_bazel_madwolf/97780932f72da4bf457551d43f4a7dc9/sandbox/linux-sandbox/609/execroot/com_github_mvukov_rules_ros2/external/cyclonedds/src/core/ddsi/src/ddsi_sertype.c:147
[gdb-1] #9  0x00007ffff792fbb3 in dds_entity_deriver_close (e=0x7fff940042d0)
[gdb-1]     at /home/madwolf/.cache/bazel/_bazel_madwolf/97780932f72da4bf457551d43f4a7dc9/sandbox/linux-sandbox/609/execroot/com_github_mvukov_rules_ros2/external/cyclonedds/src/core/ddsc/src/dds__types.h:199
[gdb-1] #10 really_delete_pinned_closed_locked (delstate=DIS_EXPLICIT, 
[gdb-1]     e=0x7fff940042d0)
[gdb-1]     at /home/madwolf/.cache/bazel/_bazel_madwolf/97780932f72da4bf457551d43f4a7dc9/sandbox/linux-sandbox/609/execroot/com_github_mvukov_rules_ros2/external/cyclonedds/src/core/ddsc/src/dds_entity.c:475
[gdb-1] #11 dds_delete_impl_pinned (e=0x7fff940042d0, 
[gdb-1]     delstate=delstate@entry=DIS_EXPLICIT)
[gdb-1]     at /home/madwolf/.cache/bazel/_bazel_madwolf/97780932f72da4bf457551d43f4a7dc9/sandbox/linux-sandbox/609/execroot/com_github_mvukov_rules_ros2/external/cyclonedds/src/core/ddsc/src/dds_entity.c:431
[gdb-1] #12 0x00007ffff792fef4 in dds_delete_impl (delstate=DIS_EXPLICIT, 
[gdb-1]     entity=<optimized out>)
[gdb-1]     at /home/madwolf/.cache/bazel/_bazel_madwolf/97780932f72da4bf457551d43f4a7dc9/sandbox/linux-sandbox/609/execroot/com_github_mvukov_rules_ros2/external/cyclonedds/src/core/ddsc/src/dds_entity.c:406
[gdb-1] #13 dds_entity_drop_ref (e=0x7fff940042d0)
[gdb-1]     at /home/madwolf/.cache/bazel/_bazel_madwolf/97780932f72da4bf457551d43f4a7dc9/sandbox/linux-sandbox/609/execroot/com_github_mvukov_rules_ros2/external/cyclonedds/src/core/ddsc/src/dds_entity.c:120
[gdb-1] #14 0x00007ffff790a1ff in dds_reader_delete (e=0x7fff94006fc0)
[gdb-1]     at /home/madwolf/.cache/bazel/_bazel_madwolf/97780932f72da4bf457551d43f4a7dc9/sandbox/linux-sandbox/609/execroot/com_github_mvukov_rules_ros2/external/cyclonedds/src/core/ddsc/src/dds_reader.c:117
[gdb-1] #15 0x00007ffff792fd35 in dds_entity_deriver_delete (e=0x7fff94006fc0)
[gdb-1]     at /home/madwolf/.cache/bazel/_bazel_madwolf/97780932f72da4bf457551d43f4a7dc9/sandbox/linux-sandbox/609/execroot/com_github_mvukov_rules_ros2/external/cyclonedds/src/core/ddsc/src/dds__types.h:202
[gdb-1] #16 really_delete_pinned_closed_locked (delstate=DIS_USER, e=0x7fff94006fc0)
[gdb-1]     at /home/madwolf/.cache/bazel/_bazel_madwolf/97780932f72da4bf457551d43f4a7dc9/sandbox/linux-sandbox/609/execroot/com_github_mvukov_rules_ros2/external/cyclonedds/src/core/ddsc/src/dds_entity.c:537
[gdb-1] #17 dds_delete_impl_pinned (e=0x7fff94006fc0, delstate=delstate@entry=DIS_USER)
[gdb-1]     at /home/madwolf/.cache/bazel/_bazel_madwolf/97780932f72da4bf457551d43f4a7dc9/sandbox/linux-sandbox/609/execroot/com_github_mvukov_rules_ros2/external/cyclonedds/src/core/ddsc/src/dds_entity.c:431
[gdb-1] #18 0x00007ffff792feab in dds_delete_impl (delstate=DIS_USER, 
[gdb-1]     entity=<optimized out>)
[gdb-1]     at /home/madwolf/.cache/bazel/_bazel_madwolf/97780932f72da4bf457551d43f4a7dc9/sandbox/linux-sandbox/609/execroot/com_github_mvukov_rules_ros2/external/cyclonedds/src/core/ddsc/src/dds_entity.c:406
[gdb-1] #19 dds_delete (entity=<optimized out>)
[gdb-1]     at /home/madwolf/.cache/bazel/_bazel_madwolf/97780932f72da4bf457551d43f4a7dc9/sandbox/linux-sandbox/609/execroot/com_github_mvukov_rules_ros2/external/cyclonedds/src/core/ddsc/src/dds_entity.c:389
[gdb-1] #20 0x00007ffff7856c53 in destroy_subscription (subscription=0x7fff94009bf0)
[gdb-1]     at external/ros2_rmw_cyclonedds/rmw_cyclonedds_cpp/src/rmw_node.cpp:3056
[gdb-1] #21 0x00007ffff7857268 in rmw_destroy_subscription (node=0x555556182220, 
[gdb-1]     subscription=0x7fff94009bf0)
[gdb-1]     at external/ros2_rmw_cyclonedds/rmw_cyclonedds_cpp/src/rmw_node.cpp:3104
[gdb-1] #22 0x00005555560a458b in rmw_destroy_subscription (v2=0x555556182220, 
[gdb-1]     v1=0x7fff94009bf0)
[gdb-1]     at external/ros2_rmw_implementation/rmw_implementation/src/functions.cpp:365
[gdb-1] #23 0x0000555556012522 in rcl_subscription_fini (subscription=0x7fff94000df0, 
[gdb-1]     node=0x555556155bf0) at external/ros2_rcl/rcl/src/rcl/subscription.c:181
[gdb-1] #24 0x0000555555fd32d3 in rclcpp::SubscriptionBase::<lambda(rcl_subscription_t*)>::operator()(rcl_subscription_t *) const (__closure=0x7fff940066b0, 
[gdb-1]     rcl_subs=0x7fff94000df0)
[gdb-1]     at external/ros2_rclcpp/rclcpp/src/rclcpp/subscription_base.cpp:55
[gdb-1] #25 0x0000555555fd6bfe in std::_Sp_counted_deleter<rcl_subscription_s*, rclcpp::SubscriptionBase::SubscriptionBase(rclcpp::node_interfaces::NodeBaseInterface*, const rosidl_message_type_support_t&, const string&, const rcl_subscription_options_t&, bool, std::shared_ptr<rcpputils::SharedLibrary>)::<lambda(rcl_subscription_t*)>, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose(void) (
[gdb-1]     this=0x7fff940066a0) at /usr/include/c++/9/bits/shared_ptr_base.h:471
[gdb-1] #26 0x00005555559812ec in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x7fff940066a0) at /usr/include/c++/9/bits/shared_ptr_base.h:155
[gdb-1] #27 0x00005555559806c1 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x7fffac001e98, __in_chrg=<optimized out>)
[gdb-1]     at /usr/include/c++/9/bits/shared_ptr_base.h:730
[gdb-1] #28 0x0000555555edad84 in std::__shared_ptr<rcl_subscription_s const, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0x7fffac001e90, 
[gdb-1]     __in_chrg=<optimized out>)
[gdb-1]     at /usr/include/c++/9/bits/shared_ptr_base.h:1169
[gdb-1] #29 0x0000555555edada4 in std::shared_ptr<rcl_subscription_s const>::~shared_ptr (this=0x7fffac001e90, __in_chrg=<optimized out>)
[gdb-1]     at /usr/include/c++/9/bits/shared_ptr.h:103
[gdb-1] #30 0x0000555555ee5abe in __gnu_cxx::new_allocator<std::shared_ptr<rcl_subscription_s const> >::destroy<std::shared_ptr<rcl_subscription_s const> > (
[gdb-1]     this=0x555556155c40, __p=0x7fffac001e90)
[gdb-1]     at /usr/include/c++/9/ext/new_allocator.h:152
[gdb-1] #31 0x0000555555ee402d in std::allocator_traits<std::allocator<std::shared_ptr<rcl_subscription_s const> > >::destroy<std::shared_ptr<rcl_subscription_s const> > (__a=..., __p=0x7fffac001e90) at /usr/include/c++/9/bits/alloc_traits.h:496
[gdb-1] #32 0x0000555555ee1d13 in std::vector<std::shared_ptr<rcl_subscription_s const>, std::allocator<std::shared_ptr<rcl_subscription_s const> > >::_M_erase (
[gdb-1] warning: RTTI symbol not found for class 'std::_Sp_counted_deleter<rcl_subscription_s*, rclcpp::SubscriptionBase::SubscriptionBase(rclcpp::node_interfaces::NodeBaseInterface*, rosidl_message_type_support_t const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rcl_subscription_options_s const&, bool, std::shared_ptr<rcpputils::SharedLibrary>)::{lambda(rcl_subscription_s*)#1}, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>'
[gdb-1] warning: RTTI symbol not found for class 'std::_Sp_counted_deleter<rcl_subscription_s*, rclcpp::SubscriptionBase::SubscriptionBase(rclcpp::node_interfaces::NodeBaseInterface*, rosidl_message_type_support_t const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rcl_subscription_options_s const&, bool, std::shared_ptr<rcpputils::SharedLibrary>)::{lambda(rcl_subscription_s*)#1}, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>'
[gdb-1]     this=0x555556155c40, __position=
[gdb-1]   std::shared_ptr<const rcl_subscription_s> (expired, weak count 1) = {get() = 0x7fff94000df0}) at /usr/include/c++/9/bits/vector.tcc:177
[gdb-1] #33 0x0000555555edf936 in std::vector<std::shared_ptr<rcl_subscription_s const>, std::allocator<std::shared_ptr<rcl_subscription_s const> > >::erase (
[gdb-1] warning: RTTI symbol not found for class 'std::_Sp_counted_deleter<rcl_subscription_s*, rclcpp::SubscriptionBase::SubscriptionBase(rclcpp::node_interfaces::NodeBaseInterface*, rosidl_message_type_support_t const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rcl_subscription_options_s const&, bool, std::shared_ptr<rcpputils::SharedLibrary>)::{lambda(rcl_subscription_s*)#1}, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>'
[gdb-1] warning: RTTI symbol not found for class 'std::_Sp_counted_deleter<rcl_subscription_s*, rclcpp::SubscriptionBase::SubscriptionBase(rclcpp::node_interfaces::NodeBaseInterface*, rosidl_message_type_support_t const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rcl_subscription_options_s const&, bool, std::shared_ptr<rcpputils::SharedLibrary>)::{lambda(rcl_subscription_s*)#1}, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>'
[gdb-1]     this=0x555556155c40, __position=
[gdb-1]   std::shared_ptr<const rcl_subscription_s> (expired, weak count 1) = {get() = 0x7fff94000df0}) at /usr/include/c++/9/bits/stl_vector.h:1428
[gdb-1] #34 0x0000555555edd774 in rclcpp::memory_strategies::allocator_memory_strategy::AllocatorMemoryStrategy<std::allocator<void> >::get_next_subscription (
[gdb-1]     this=0x555556155c20, any_exec=..., 
[gdb-1]     weak_groups_to_nodes=std::map with 5 elements = {...})
[gdb-1]     at external/ros2_rclcpp/rclcpp/include/rclcpp/strategies/allocator_memory_strategy.hpp:276
[gdb-1] #35 0x0000555555eb8502 in rclcpp::Executor::get_next_ready_executable_from_map
[gdb-1]     (this=0x7fffffffabf0, any_executable=..., 
[gdb-1]     weak_groups_to_nodes=std::map with 5 elements = {...})
[gdb-1]     at external/ros2_rclcpp/rclcpp/src/rclcpp/executor.cpp:847
[gdb-1] #36 0x0000555555eb843c in rclcpp::Executor::get_next_ready_executable (
[gdb-1]     this=0x7fffffffabf0, any_executable=...)
[gdb-1]     at external/ros2_rclcpp/rclcpp/src/rclcpp/executor.cpp:827
[gdb-1] #37 0x0000555555eb885e in rclcpp::Executor::get_next_executable (
[gdb-1]     this=0x7fffffffabf0, any_executable=..., timeout=...)
[gdb-1]     at external/ros2_rclcpp/rclcpp/src/rclcpp/executor.cpp:917
[gdb-1] #38 0x0000555555ecc4e9 in rclcpp::executors::MultiThreadedExecutor::run (
[gdb-1]     this=0x7fffffffabf0, this_thread_number=10)
[gdb-1]     at external/ros2_rclcpp/rclcpp/src/rclcpp/executors/multi_threaded_executor.cpp:85
[gdb-1] #39 0x0000555555ecd72d in std::__invoke_impl<void, void (rclcpp::executors::MultiThreadedExecutor::*&)(unsigned long), rclcpp::executors::MultiThreadedExecutor*&, unsigned long&> (__f=
[gdb-1]     @0x5555563c8488: (void (rclcpp::executors::MultiThreadedExecutor::*)(rclcpp::executors::MultiThreadedExecutor * const, unsigned long)) 0x555555ecc36e <rclcpp::executors::MultiThreadedExecutor::run(unsigned long)>, 
[gdb-1]     __t=@0x5555563c84a0: 0x7fffffffabf0) at /usr/include/c++/9/bits/invoke.h:73
[gdb-1] #40 0x0000555555ecd63f in std::__invoke<void (rclcpp::executors::MultiThreadedExecutor::*&)(unsigned long), rclcpp::executors::MultiThreadedExecutor*&, unsigned long&> (__fn=
[gdb-1]     @0x5555563c8488: (void (rclcpp::executors::MultiThreadedExecutor::*)(rclcpp::executors::MultiThreadedExecutor * const, unsigned long)) 0x555555ecc36e <rclcpp::executors::MultiThreadedExecutor::run(unsigned long)>)
[gdb-1]     at /usr/include/c++/9/bits/invoke.h:95
[gdb-1] #41 0x0000555555ecd55b in std::_Bind<void (rclcpp::executors::MultiThreadedExecutor::*(rclcpp::executors::MultiThreadedExecutor*, unsigned long))(unsigned long)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) (
[gdb-1]     this=0x5555563c8488, __args=...) at /usr/include/c++/9/functional:400
[gdb-1] #42 0x0000555555ecd4e0 in std::_Bind<void (rclcpp::executors::MultiThreadedExecutor::*(rclcpp::executors::MultiThreadedExecutor*, unsigned long))(unsigned long)>::operator()<, void>() (this=0x5555563c8488)
[gdb-1]     at /usr/include/c++/9/functional:484
[gdb-1] #43 0x0000555555ecd496 in std::__invoke_impl<void, std::_Bind<void (rclcpp::executors::MultiThreadedExecutor::*(rclcpp::executors::MultiThreadedExecutor*, unsigned long))(unsigned long)>>(std::__invoke_other, std::_Bind<void (rclcpp::executors::MultiThreadedExecutor::*(rclcpp::executors::MultiThreadedExecutor*, unsigned long))(unsigned long)>&&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
[gdb-1] #44 0x0000555555ecd43f in std::__invoke<std::_Bind<void (rclcpp::executors::MultiThreadedExecutor::*(rclcpp::executors::MultiThreadedExecutor*, unsigned long))(unsigned long)>>(std::_Bind<void (rclcpp::executors::MultiThreadedExecutor::*(rclcpp::executors::MultiThreadedExecutor*, unsigned long))(unsigned long)>&&) (
[gdb-1]     __fn=...) at /usr/include/c++/9/bits/invoke.h:95
[gdb-1] #45 0x0000555555ecd3e0 in std::thread::_Invoker<std::tuple<std::_Bind<void (rclcpp::executors::MultiThreadedExecutor::*(rclcpp::executors::MultiThreadedExecutor*, unsigned long))(unsigned long)> > >::_M_invoke<0ul>(std::_Index_tuple<0ul>)
[gdb-1]     (this=0x5555563c8488) at /usr/include/c++/9/thread:244
[gdb-1] #46 0x0000555555ecd3b2 in std::thread::_Invoker<std::tuple<std::_Bind<void (rclcpp::executors::MultiThreadedExecutor::*(rclcpp::executors::MultiThreadedExecutor*, unsigned long))(unsigned long)> > >::operator()() (this=0x5555563c8488)
[gdb-1]     at /usr/include/c++/9/thread:251
[gdb-1] #47 0x0000555555ecd392 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::_Bind<void (rclcpp::executors::MultiThreadedExecutor::*(rclcpp::executors::MultiThreadedExecutor*, unsigned long))(unsigned long)> > > >::_M_run() (
[gdb-1]     this=0x5555563c8480) at /usr/include/c++/9/thread:195
[gdb-1] #48 0x00007ffff7df0de4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
[gdb-1] #49 0x00007ffff7f32609 in start_thread (arg=<optimized out>)
[gdb-1]     at pthread_create.c:477
[gdb-1] #50 0x00007ffff7add133 in clone ()
[gdb-1]     at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)

Can be reproduced as 1) remove panel(s) from studio, add the Log panel and then start the bridge app. Then you will eventually see ROS logs in the log panel. Once you remove the panel, segfault 🎉 .

I am (slowly) looking into this, but additional help is very welcome.

@mvukov
Copy link
Owner Author

mvukov commented May 18, 2023

@ahans FYI.

@ahans
Copy link
Contributor

ahans commented May 18, 2023

The stacktrace looks like it's exactly the same issue we've been fighting with before. The also use rclcpp::GenericSubscription. However, I don't think our patches cause this. On the contrary, I think there's another patch missing. Or -- probably even better -- rework the type support part to build the same two shared objects as stock ROS. That would allow us to get rid of the patches.

@mvukov mvukov marked this pull request as ready for review June 3, 2023 11:32
@mvukov mvukov merged commit bddabbf into main Jun 3, 2023
5 checks passed
@mvukov mvukov deleted the feature/foxglove branch June 3, 2023 11:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants