ros-planning / navigation

ROS Navigation stack. Code for finding where the robot is and how it can get somewhere else.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

move_base corrupted double-linked list crash

GaganBhat opened this issue · comments

I'm using ROS Noetic with default installed navigation stack.

move_base crashes when I run with gmapping through a memory corruption issue. Similar issue seems to have been seen before.

Here is the full log with valgrind output.

[ INFO] [1661217226.287854598]: global_costmap: Using plugin "static_layer"
[ INFO] [1661217226.430714974]: Requesting the map...
[ INFO] [1661217226.868254144]: Resizing costmap to 4000 X 4000 at 0.050000 m/pix
[ INFO] [1661217227.742022526]: Received a 4000 X 4000 map at 0.050000 m/pix
[ INFO] [1661217227.815893849]: global_costmap: Using plugin "obstacle_layer"
[ INFO] [1661217227.862171790]:     Subscribed to Topics: points
[ INFO] [1661217228.160926670]: global_costmap: Using plugin "inflation_layer"
==2133930== Invalid read of size 8
==2133930==    at 0x54A16EC: costmap_2d::Costmap2DROS::readFootprintFromConfig(costmap_2d::Costmap2DConfig const&, costmap_2d::Costmap2DConfig const&) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54A1A51: costmap_2d::Costmap2DROS::reconfigureCB(costmap_2d::Costmap2DConfig&, unsigned int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54B3BD9: dynamic_reconfigure::Server<costmap_2d::Costmap2DConfig>::callCallback(costmap_2d::Costmap2DConfig&, int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54A737E: costmap_2d::Costmap2DROS::Costmap2DROS(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x4CB2A16: move_base::MoveBase::MoveBase(tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x110D78: main (in /opt/ros/noetic/lib/move_base/move_base)
==2133930==  Address 0x85f5488 is 8 bytes inside a block of size 18 free'd
==2133930==    at 0x4A3BE99: operator delete(void*) (vg_replace_malloc.c:923)
==2133930==    by 0x54A52EF: costmap_2d::Costmap2DROS::Costmap2DROS(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x4CB2A16: move_base::MoveBase::MoveBase(tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x110D78: main (in /opt/ros/noetic/lib/move_base/move_base)
==2133930==  Block was alloc'd at
==2133930==    at 0x4A397B3: operator new(unsigned long) (vg_replace_malloc.c:422)
==2133930==    by 0x4CD141C: void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x54A5278: costmap_2d::Costmap2DROS::Costmap2DROS(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x4CB2A16: move_base::MoveBase::MoveBase(tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x110D78: main (in /opt/ros/noetic/lib/move_base/move_base)
==2133930== 
==2133930== Invalid write of size 2
==2133930==    at 0x4A4337B: memmove (vg_replace_strmem.c:1382)
==2133930==    by 0x51A7284: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28)
==2133930==    by 0x54A1AF5: costmap_2d::Costmap2DROS::reconfigureCB(costmap_2d::Costmap2DConfig&, unsigned int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54B3BD9: dynamic_reconfigure::Server<costmap_2d::Costmap2DConfig>::callCallback(costmap_2d::Costmap2DConfig&, int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54A737E: costmap_2d::Costmap2DROS::Costmap2DROS(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x4CB2A16: move_base::MoveBase::MoveBase(tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x110D78: main (in /opt/ros/noetic/lib/move_base/move_base)
==2133930==  Address 0x85f5438 is 0 bytes after a block of size 824 alloc'd
==2133930==    at 0x4A397B3: operator new(unsigned long) (vg_replace_malloc.c:422)
==2133930==    by 0x4CB2A04: move_base::MoveBase::MoveBase(tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x110D78: main (in /opt/ros/noetic/lib/move_base/move_base)
==2133930== 
==2133930== Invalid write of size 1
==2133930==    at 0x4A433AB: memmove (vg_replace_strmem.c:1382)
==2133930==    by 0x51A7284: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28)
==2133930==    by 0x54A1AF5: costmap_2d::Costmap2DROS::reconfigureCB(costmap_2d::Costmap2DConfig&, unsigned int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54B3BD9: dynamic_reconfigure::Server<costmap_2d::Costmap2DConfig>::callCallback(costmap_2d::Costmap2DConfig&, int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54A737E: costmap_2d::Costmap2DROS::Costmap2DROS(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x4CB2A16: move_base::MoveBase::MoveBase(tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x110D78: main (in /opt/ros/noetic/lib/move_base/move_base)
==2133930==  Address 0x85f543e is 6 bytes after a block of size 824 alloc'd
==2133930==    at 0x4A397B3: operator new(unsigned long) (vg_replace_malloc.c:422)
==2133930==    by 0x4CB2A04: move_base::MoveBase::MoveBase(tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x110D78: main (in /opt/ros/noetic/lib/move_base/move_base)
==2133930== 
==2133930== Invalid write of size 1
==2133930==    at 0x51A7241: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28)
==2133930==    by 0x54A1AF5: costmap_2d::Costmap2DROS::reconfigureCB(costmap_2d::Costmap2DConfig&, unsigned int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54B3BD9: dynamic_reconfigure::Server<costmap_2d::Costmap2DConfig>::callCallback(costmap_2d::Costmap2DConfig&, int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54A737E: costmap_2d::Costmap2DROS::Costmap2DROS(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x4CB2A16: move_base::MoveBase::MoveBase(tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x110D78: main (in /opt/ros/noetic/lib/move_base/move_base)
==2133930==  Address 0x85f543f is 7 bytes after a block of size 824 alloc'd
==2133930==    at 0x4A397B3: operator new(unsigned long) (vg_replace_malloc.c:422)
==2133930==    by 0x4CB2A04: move_base::MoveBase::MoveBase(tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x110D78: main (in /opt/ros/noetic/lib/move_base/move_base)
==2133930== 
==2133930== Invalid write of size 8
==2133930==    at 0x54A1B12: costmap_2d::Costmap2DROS::reconfigureCB(costmap_2d::Costmap2DConfig&, unsigned int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54B3BD9: dynamic_reconfigure::Server<costmap_2d::Costmap2DConfig>::callCallback(costmap_2d::Costmap2DConfig&, int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54A737E: costmap_2d::Costmap2DROS::Costmap2DROS(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x4CB2A16: move_base::MoveBase::MoveBase(tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x110D78: main (in /opt/ros/noetic/lib/move_base/move_base)
==2133930==  Address 0x85f5448 is 16 bytes after a block of size 824 alloc'd
==2133930==    at 0x4A397B3: operator new(unsigned long) (vg_replace_malloc.c:422)
==2133930==    by 0x4CB2A04: move_base::MoveBase::MoveBase(tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x110D78: main (in /opt/ros/noetic/lib/move_base/move_base)
==2133930== 
==2133930== Invalid write of size 8
==2133930==    at 0x54A1B22: costmap_2d::Costmap2DROS::reconfigureCB(costmap_2d::Costmap2DConfig&, unsigned int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54B3BD9: dynamic_reconfigure::Server<costmap_2d::Costmap2DConfig>::callCallback(costmap_2d::Costmap2DConfig&, int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54A737E: costmap_2d::Costmap2DROS::Costmap2DROS(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x4CB2A16: move_base::MoveBase::MoveBase(tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x110D78: main (in /opt/ros/noetic/lib/move_base/move_base)
==2133930==  Address 0x85f5450 is 16 bytes after a block of size 832 in arena "client"
==2133930== 
==2133930== Invalid write of size 4
==2133930==    at 0x54A1B32: costmap_2d::Costmap2DROS::reconfigureCB(costmap_2d::Costmap2DConfig&, unsigned int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54B3BD9: dynamic_reconfigure::Server<costmap_2d::Costmap2DConfig>::callCallback(costmap_2d::Costmap2DConfig&, int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54A737E: costmap_2d::Costmap2DROS::Costmap2DROS(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x4CB2A16: move_base::MoveBase::MoveBase(tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x110D78: main (in /opt/ros/noetic/lib/move_base/move_base)
==2133930==  Address 0x85f5460 is 32 bytes before a block of size 32 in arena "client"
==2133930== 
==2133930== Invalid write of size 8
==2133930==    at 0x54A1B3E: costmap_2d::Costmap2DROS::reconfigureCB(costmap_2d::Costmap2DConfig&, unsigned int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54B3BD9: dynamic_reconfigure::Server<costmap_2d::Costmap2DConfig>::callCallback(costmap_2d::Costmap2DConfig&, int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54A737E: costmap_2d::Costmap2DROS::Costmap2DROS(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x4CB2A16: move_base::MoveBase::MoveBase(tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x110D78: main (in /opt/ros/noetic/lib/move_base/move_base)
==2133930==  Address 0x85f5458 is 24 bytes after a block of size 832 in arena "client"
==2133930== 

valgrind: m_mallocfree.c:305 (get_bszB_as_is): Assertion 'bszB_lo == bszB_hi' failed.
valgrind: Heap block lo/hi size mismatch: lo = 896, hi = 4602678819172646912.
This is probably caused by your program erroneously writing past the
end of a heap block and corrupting heap metadata.  If you fix any
invalid writes reported by Memcheck, this assertion failure will
probably go away.  Please try that before reporting this as a bug.


host stacktrace:
==2133930==    at 0x58104AAA: show_sched_status_wrk (m_libcassert.c:385)
==2133930==    by 0x580E6D37: report_and_quit (m_libcassert.c:474)
==2133930==    by 0x580E6EB7: vgPlain_assert_fail (m_libcassert.c:497)
==2133930==    by 0x580F4A1A: get_bszB_as_is (m_mallocfree.c:297)
==2133930==    by 0x5818D82D: vgPlain_describe_arena_addr (m_mallocfree.c:341)
==2133930==    by 0x5818D82D: vgPlain_describe_addr (m_addrinfo.c:87)
==2133930==    by 0x581C13FE: vgMemCheck_update_Error_extra (mc_errors.c:1143)
==2133930==    by 0x581C7D36: vgPlain_maybe_record_error (m_errormgr.c:683)
==2133930==    by 0x581DF3BD: vgMemCheck_record_address_error (mc_errors.c:735)
==2133930==    by 0x100417A9F7: ???
==2133930==    by 0x1003454E9F: ???
==2133930==    by 0x1003454EDF: ???

sched status:
  running_tid=1

Thread 1: status = VgTs_Runnable (lwpid 2133930)
==2133930==    at 0x54A1B4E: costmap_2d::Costmap2DROS::reconfigureCB(costmap_2d::Costmap2DConfig&, unsigned int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54B3BD9: dynamic_reconfigure::Server<costmap_2d::Costmap2DConfig>::callCallback(costmap_2d::Costmap2DConfig&, int) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x54A737E: costmap_2d::Costmap2DROS::Costmap2DROS(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libcostmap_2d.so)
==2133930==    by 0x4CB2A16: move_base::MoveBase::MoveBase(tf2_ros::Buffer&) (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x110D78: main (in /opt/ros/noetic/lib/move_base/move_base)
client stack range: [0x1FFEFEE000 0x1FFF000FFF] client SP: 0x1FFEFFDB10
valgrind stack range: [0x1003355000 0x1003454FFF] top usage: 11196 of 1048576

Thread 2: status = VgTs_WaitSys syscall 232 (lwpid 2134108)
==2133930==    at 0x538049E: epoll_wait (epoll_wait.c:30)
==2133930==    by 0x4EE2637: ros::poll_sockets(int, pollfd*, unsigned long, int) (in /opt/ros/noetic/lib/libroscpp.so)
==2133930==    by 0x4F5DDEB: ros::PollSet::update(int) (in /opt/ros/noetic/lib/libroscpp.so)
==2133930==    by 0x4EEFDBC: ros::PollManager::threadFunc() (in /opt/ros/noetic/lib/libroscpp.so)
==2133930==    by 0x566143A: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==2133930==    by 0x5589608: start_thread (pthread_create.c:477)
==2133930==    by 0x5380162: clone (clone.S:95)
client stack range: [0x8822000 0x9020FFF] client SP: 0x9020AC0
valgrind stack range: [0x10062BA000 0x10063B9FFF] top usage: 4744 of 1048576

Thread 3: status = VgTs_WaitSys syscall 7 (lwpid 2134109)
==2133930==    at 0x53739CF: poll (poll.c:29)
==2133930==    by 0x56364DC: XmlRpc::XmlRpcDispatch::work(double) (in /opt/ros/noetic/lib/libxmlrpcpp.so)
==2133930==    by 0x4ED5F09: ros::XMLRPCManager::serverThreadFunc() (in /opt/ros/noetic/lib/libroscpp.so)
==2133930==    by 0x566143A: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==2133930==    by 0x5589608: start_thread (pthread_create.c:477)
==2133930==    by 0x5380162: clone (clone.S:95)
client stack range: [0x9023000 0x9821FFF] client SP: 0x9821D00
valgrind stack range: [0x10065AE000 0x10066ADFFF] top usage: 4664 of 1048576

Thread 4: status = VgTs_WaitSys syscall 202 (lwpid 2134110)
==2133930==    at 0x5590376: futex_wait_cancelable (futex-internal.h:183)
==2133930==    by 0x5590376: __pthread_cond_wait_common (pthread_cond_wait.c:508)
==2133930==    by 0x5590376: pthread_cond_wait@@GLIBC_2.3.2 (pthread_cond_wait.c:638)
==2133930==    by 0x4F3D7D6: ros::ROSOutAppender::logThread() (in /opt/ros/noetic/lib/libroscpp.so)
==2133930==    by 0x566143A: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==2133930==    by 0x5589608: start_thread (pthread_create.c:477)
==2133930==    by 0x5380162: clone (clone.S:95)
client stack range: [0x9824000 0xA022FFF] client SP: 0xA022C40
valgrind stack range: [0x10068B2000 0x10069B1FFF] top usage: 4744 of 1048576

Thread 5: status = VgTs_WaitSys syscall 202 (lwpid 2134111)
==2133930==    at 0x55907B1: futex_abstimed_wait_cancelable (futex-internal.h:320)
==2133930==    by 0x55907B1: __pthread_cond_wait_common (pthread_cond_wait.c:520)
==2133930==    by 0x55907B1: pthread_cond_timedwait@@GLIBC_2.3.2 (pthread_cond_wait.c:656)
==2133930==    by 0x4F04BAE: ros::CallbackQueue::callAvailable(ros::WallDuration) (in /opt/ros/noetic/lib/libroscpp.so)
==2133930==    by 0x4F3FFBE: ros::internalCallbackQueueThreadFunc() (in /opt/ros/noetic/lib/libroscpp.so)
==2133930==    by 0x566143A: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==2133930==    by 0x5589608: start_thread (pthread_create.c:477)
==2133930==    by 0x5380162: clone (clone.S:95)
client stack range: [0xA025000 0xA823FFF] client SP: 0xA823C40
valgrind stack range: [0x1006BBA000 0x1006CB9FFF] top usage: 4664 of 1048576

Thread 6: status = VgTs_WaitSys syscall 202 (lwpid 2134112)
==2133930==    at 0x55907B1: futex_abstimed_wait_cancelable (futex-internal.h:320)
==2133930==    by 0x55907B1: __pthread_cond_wait_common (pthread_cond_wait.c:520)
==2133930==    by 0x55907B1: pthread_cond_timedwait@@GLIBC_2.3.2 (pthread_cond_wait.c:656)
==2133930==    by 0x4F04BAE: ros::CallbackQueue::callAvailable(ros::WallDuration) (in /opt/ros/noetic/lib/libroscpp.so)
==2133930==    by 0x4D99777: tf2_ros::TransformListener::dedicatedListenerThread() (in /opt/ros/noetic/lib/libtf2_ros.so)
==2133930==    by 0x566143A: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==2133930==    by 0x5589608: start_thread (pthread_create.c:477)
==2133930==    by 0x5380162: clone (clone.S:95)
client stack range: [0xA826000 0xB024FFF] client SP: 0xB024C60
valgrind stack range: [0x1006EC6000 0x1006FC5FFF] top usage: 4664 of 1048576

Thread 7: status = VgTs_WaitSys syscall 202 (lwpid 2134113)
==2133930==    at 0x55907B1: futex_abstimed_wait_cancelable (futex-internal.h:320)
==2133930==    by 0x55907B1: __pthread_cond_wait_common (pthread_cond_wait.c:520)
==2133930==    by 0x55907B1: pthread_cond_timedwait@@GLIBC_2.3.2 (pthread_cond_wait.c:656)
==2133930==    by 0x4CDD7ED: actionlib::SimpleActionServer<move_base_msgs::MoveBaseAction_<std::allocator<void> > >::executeLoop() (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x566143A: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==2133930==    by 0x5589608: start_thread (pthread_create.c:477)
==2133930==    by 0x5380162: clone (clone.S:95)
client stack range: [0xCC27000 0xD425FFF] client SP: 0xD425C70
valgrind stack range: [0x1007CED000 0x1007DECFFF] top usage: 4664 of 1048576

Thread 8: status = VgTs_WaitSys syscall 202 (lwpid 2134115)
==2133930==    at 0x5590376: futex_wait_cancelable (futex-internal.h:183)
==2133930==    by 0x5590376: __pthread_cond_wait_common (pthread_cond_wait.c:508)
==2133930==    by 0x5590376: pthread_cond_wait@@GLIBC_2.3.2 (pthread_cond_wait.c:638)
==2133930==    by 0x4CC9A12: void boost::condition_variable_any::wait<boost::unique_lock<boost::recursive_mutex> >(boost::unique_lock<boost::recursive_mutex>&) (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x4CA77F0: move_base::MoveBase::planThread() (in /opt/ros/noetic/lib/libmove_base.so)
==2133930==    by 0x566143A: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==2133930==    by 0x5589608: start_thread (pthread_create.c:477)
==2133930==    by 0x5380162: clone (clone.S:95)
client stack range: [0xD428000 0xDC26FFF] client SP: 0xDC26AA0
valgrind stack range: [0x1007FF1000 0x10080F0FFF] top usage: 4632 of 1048576

Thread 9: status = VgTs_WaitSys syscall 202 (lwpid 2134270)
==2133930==    at 0x55907B1: futex_abstimed_wait_cancelable (futex-internal.h:320)
==2133930==    by 0x55907B1: __pthread_cond_wait_common (pthread_cond_wait.c:520)
==2133930==    by 0x55907B1: pthread_cond_timedwait@@GLIBC_2.3.2 (pthread_cond_wait.c:656)
==2133930==    by 0x4EDD2C5: boost::condition_variable::do_wait_until(boost::unique_lock<boost::mutex>&, boost::detail::mono_platform_timepoint const&) (in /opt/ros/noetic/lib/libroscpp.so)
==2133930==    by 0x4EDEE74: ros::TimerManager<ros::Time, ros::Duration, ros::TimerEvent>::threadFunc() (in /opt/ros/noetic/lib/libroscpp.so)
==2133930==    by 0x566143A: ??? (in /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0)
==2133930==    by 0x5589608: start_thread (pthread_create.c:477)
==2133930==    by 0x5380162: clone (clone.S:95)
client stack range: [0x166DB000 0x16ED9FFF] client SP: 0x16ED9BB0
valgrind stack range: [0x1009DFE000 0x1009EFDFFF] top usage: 4632 of 1048576


Note: see also the FAQ in the source distribution.
It contains workarounds to several common problems.
In particular, if Valgrind aborted or crashed after
identifying problems in your program, there's a good chance
that fixing those problems will prevent Valgrind aborting or
crashing, especially if it happened in m_mallocfree.c.

If that doesn't help, please report this bug to: www.valgrind.org

In the bug report, send all the above text, the valgrind
version, and what OS and version you are using.  Thanks.

[move_base-10] process has died [pid 2133930, exit code 1, cmd valgrind --tool=memcheck --leak-check=full /opt/ros/noetic/lib/move_base/move_base odom:=odom scan:=gibson_ros/laserscan cmd_vel:=/mobile_base/commands/velocity __name:=move_base __log:=/home/gaganb/.ros/log/cdd52ae6-2280-11ed-91f6-e9098d46c3c8/move_base-10.log].
log file: /home/gaganb/.ros/log/cdd52ae6-2280-11ed-91f6-e9098d46c3c8/move_base-10*.log

GDB shows this as the backtrace.

(gdb) bt
#0  0x00007ffff7858752 in __GI___libc_free (mem=<optimized out>) at malloc.c:3124
#1  0x00007ffff6e2894a in boost::program_options::option_description::~option_description() ()
   from /lib/x86_64-linux-gnu/libboost_program_options.so.1.71.0
#2  0x00007ffff6e2e3da in boost::detail::sp_counted_impl_p<boost::program_options::option_description>::dispose()
    () from /lib/x86_64-linux-gnu/libboost_program_options.so.1.71.0
#3  0x00007ffff724ee34 in rospack::parse_args(int, char**, rospack::Rosstackage&, boost::program_options::variables_map&) () from /opt/ros/noetic/lib/librospack.so
#4  0x00007ffff724f17e in rospack::rospack_run(int, char**, rospack::Rosstackage&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) () from /opt/ros/noetic/lib/librospack.so
#5  0x00007ffff724c8a0 in rospack::ROSPack::run(int, char**) () from /opt/ros/noetic/lib/librospack.so
#6  0x00007ffff724cda0 in rospack::ROSPack::run(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /opt/ros/noetic/lib/librospack.so
#7  0x00007ffff76d547f in ros::package::command(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /opt/ros/noetic/lib/libroslib.so
#8  0x00007ffff76d562f in ros::package::getPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /opt/ros/noetic/lib/libroslib.so
#9  0x00007ffff778cbff in pluginlib::ClassLoader<costmap_2d::Layer>::getAllLibraryPathsToTry(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 /opt/ros/noetic/lib/libcostmap_2d.so
#10 0x00007ffff778d8fa in pluginlib::ClassLoader<costmap_2d::Layer>::getClassLibraryPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /opt/ros/noetic/lib/libcostmap_2d.so
#11 0x00007ffff77851f0 in pluginlib::ClassLoader<costmap_2d::Layer>::loadLibraryForClass(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /opt/ros/noetic/lib/libcostmap_2d.so
#12 0x00007ffff778b0e1 in pluginlib::ClassLoader<costmap_2d::Layer>::createInstance(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /opt/ros/noetic/lib/libcostmap_2d.so
#13 0x00007ffff7772104 in costmap_2d::Costmap2DROS::Costmap2DROS(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tf2_ros::Buffer&) () from /opt/ros/noetic/lib/libcostmap_2d.so
#14 0x00007ffff7f34b2f in move_base::MoveBase::MoveBase(tf2_ros::Buffer&) ()
   from /opt/ros/noetic/lib/libmove_base.so
#15 0x000055555555cd79 in main ()
(gdb) 

A clean reinstall on a different system fixed this issue.