Skip to content

Nav2 crashes after latest Rolling sync due to BT.CPP #5644

@mini-1235

Description

@mini-1235

Bug report

Required Info:

  • Operating System:
    • Ubuntu 24.04
  • Computer:

  • ROS2 Version:
    • Rolling
  • Version or commit hash:
    • Latest Commit
  • DDS implementation:
    • Tried cyclone/zenoh

Expected behavior

Nav2 works normally

Actual behavior

Nav2 crashes

Reproduction instructions

  1. ros2 launch nav2_bringup tb4_simulation_launch.py headless:=0

Additional information

The latest sync on rolling updates BTCPP from 4.7.2 to 4.8.0, this causes Nav2 to crash immediately

Backtrace:

[planner_server-18] #14   Source "../csu/libc-start.c", line 360, in __libc_start_main_impl [0x7bfa7f26728a]
[planner_server-18] #13   Source "../sysdeps/nptl/libc_start_call_main.h", line 58, in __libc_start_call_main [0x7bfa7f2671c9]
[planner_server-18] #12   Object "/root/nav2_ws/build/nav2_planner/planner_server", at 0x5e15b1f8d501, in main
[planner_server-18] #11   Object "/root/nav2_ws/install/nav2_planner/lib/libplanner_server_core.so", at 0x7bfa7fa0d2a1, in nav2_planner::PlannerServer::PlannerServer(rclcpp::NodeOptions const&)
[planner_server-18] #10   Object "/root/nav2_ws/install/nav2_planner/lib/libplanner_server_core.so", at 0x7bfa7fa50fc1, in pluginlib::ClassLoader<[nav2_core::GlobalPlanner](https://github.com/ros-navigation/navigation2/issues/nav2_core::GlobalPlanner)>::ClassLoader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)
[planner_server-18] #9    Object "/root/nav2_ws/install/nav2_planner/lib/libplanner_server_core.so", at 0x7bfa7fa50961, in pluginlib::ClassLoader<[nav2_core::GlobalPlanner](https://github.com/ros-navigation/navigation2/issues/nav2_core::GlobalPlanner)>::determineAvailableClasses(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)
[planner_server-18] #8    Object "/root/nav2_ws/install/nav2_planner/lib/libplanner_server_core.so", at 0x7bfa7fa4dda4, in pluginlib::ClassLoader<[nav2_core::GlobalPlanner](https://github.com/ros-navigation/navigation2/issues/nav2_core::GlobalPlanner)>::processSingleXMLPluginFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, pluginlib::ClassDesc, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, pluginlib::ClassDesc> > >&)
[planner_server-18] #7    Object "/opt/ros/rolling/lib/libbehaviortree_cpp.so", at 0x7bfa7f128769, in tinyxml2::XMLDocument::~XMLDocument()
[planner_server-18] #6    Source "./malloc/malloc.c", line 3398, in __libc_free [0x7bfa7f2eadad]
[planner_server-18] #5    Source "./malloc/malloc.c", line 4507, in _int_free [0x7bfa7f2e838b]
[planner_server-18] #4    Source "./malloc/malloc.c", line 5772, in malloc_printerr [0x7bfa7f2e5ff4]
[planner_server-18] #3    Source "../sysdeps/posix/libc_fatal.c", line 134, in __libc_message_impl [0x7bfa7f2667b5]
[planner_server-18] #2    Source "./stdlib/abort.c", line 79, in abort [0x7bfa7f2658fe]
[planner_server-18] #1    Source "../sysdeps/posix/raise.c", line 26, in raise [0x7bfa7f28227d]
[planner_server-18] #0  | Source "./nptl/pthread_kill.c", line 89, in __pthread_kill_internal
[planner_server-18]     | Source "./nptl/pthread_kill.c", line 78, in __pthread_kill_implementation
[planner_server-18]       Source "./nptl/pthread_kill.c", line 44, in __pthread_kill [0x7bfa7f2dbb2c]
[planner_server-18] Aborted (Signal sent by tkill() 606035 0)

Downgrading to 4.7.2 solves the issue. I am not sure why CI is working properly, maybe because we are still having 4.6.2(?)

repositories:
BehaviorTree/BehaviorTree.CPP:
type: git
url: https://github.com/BehaviorTree/BehaviorTree.CPP.git
version: 4.6.2

I will also file a ticket to BTCPP tonight BehaviorTree/BehaviorTree.CPP#1028

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions