HiroIshida / ompl-thin-python

A thin python-binding of OMPL motion planning library (*For my own research)
MIT License
4 stars 1 forks source link

heap-buffer-overflow when running lighting planner #1

Closed HiroIshida closed 1 year ago

HiroIshida commented 1 year ago
h-ishida@stonep:~/python/ompl-python-dirty/build$ python3 rrt_connect.py 
Info:    Lightning Framework initialized.
=================================================================
==43904==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x622000008e20 at pc 0x7f945ac31f17 bp 0x7ffc42f47550 sp 0x7ffc42f47540
WRITE of size 8 at 0x622000008e20 thread T0
    #0 0x7f945ac31f16 in std::pair<ompl::base::State*, ompl::base::State*>::pair<ompl::base::State*, ompl::base::State*, true>() /usr/include/c++/9/bits/stl_pair.h:230
    #1 0x7f945ac2a124 in ompl::geometric::RRTConnect::RRTConnect(std::shared_ptr<ompl::base::SpaceInformation> const&, bool) /home/h-ishida/python/ompl-python-dirty/ompl/src/ompl/geometric/planners/rrt/src/RRTConnect.cpp:43
    #2 0x7f945bb3c243 in void __gnu_cxx::new_allocator<ompl::geometric::RRTConnect>::construct<ompl::geometric::RRTConnect, std::shared_ptr<ompl::base::SpaceInformation> const&>(ompl::geometric::RRTConnect*, std::shared_ptr<ompl::base::SpaceInformation> const&) /usr/include/c++/9/ext/new_allocator.h:146
    #3 0x7f945bb37993 in void std::allocator_traits<std::allocator<ompl::geometric::RRTConnect> >::construct<ompl::geometric::RRTConnect, std::shared_ptr<ompl::base::SpaceInformation> const&>(std::allocator<ompl::geometric::RRTConnect>&, ompl::geometric::RRTConnect*, std::shared_ptr<ompl::base::SpaceInformation> const&) /usr/include/c++/9/bits/alloc_traits.h:483
    #4 0x7f945bb304bc in std::_Sp_counted_ptr_inplace<ompl::geometric::RRTConnect, std::allocator<ompl::geometric::RRTConnect>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<std::shared_ptr<ompl::base::SpaceInformation> const&>(std::allocator<ompl::geometric::RRTConnect>, std::shared_ptr<ompl::base::SpaceInformation> const&) /usr/include/c++/9/bits/shared_ptr_base.h:548
    #5 0x7f945bb26437 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<ompl::geometric::RRTConnect, std::allocator<ompl::geometric::RRTConnect>, std::shared_ptr<ompl::base::SpaceInformation> const&>(ompl::geometric::RRTConnect*&, std::_Sp_alloc_shared_tag<std::allocator<ompl::geometric::RRTConnect> >, std::shared_ptr<ompl::base::SpaceInformation> const&) /usr/include/c++/9/bits/shared_ptr_base.h:679
    #6 0x7f945bb1585a in std::__shared_ptr<ompl::geometric::RRTConnect, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<ompl::geometric::RRTConnect>, std::shared_ptr<ompl::base::SpaceInformation> const&>(std::_Sp_alloc_shared_tag<std::allocator<ompl::geometric::RRTConnect> >, std::shared_ptr<ompl::base::SpaceInformation> const&) /usr/include/c++/9/bits/shared_ptr_base.h:1344
    #7 0x7f945baff5e7 in std::shared_ptr<ompl::geometric::RRTConnect>::shared_ptr<std::allocator<ompl::geometric::RRTConnect>, std::shared_ptr<ompl::base::SpaceInformation> const&>(std::_Sp_alloc_shared_tag<std::allocator<ompl::geometric::RRTConnect> >, std::shared_ptr<ompl::base::SpaceInformation> const&) /usr/include/c++/9/bits/shared_ptr.h:359
    #8 0x7f945bae8ff2 in std::shared_ptr<ompl::geometric::RRTConnect> std::allocate_shared<ompl::geometric::RRTConnect, std::allocator<ompl::geometric::RRTConnect>, std::shared_ptr<ompl::base::SpaceInformation> const&>(std::allocator<ompl::geometric::RRTConnect> const&, std::shared_ptr<ompl::base::SpaceInformation> const&) /usr/include/c++/9/bits/shared_ptr.h:702
    #9 0x7f945bac7444 in std::shared_ptr<ompl::geometric::RRTConnect> std::make_shared<ompl::geometric::RRTConnect, std::shared_ptr<ompl::base::SpaceInformation> const&>(std::shared_ptr<ompl::base::SpaceInformation> const&) /usr/include/c++/9/bits/shared_ptr.h:718
    #10 0x7f945bab4e38 in ExperienceOMPLPlanner::ExperienceOMPLPlanner(std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool) /home/h-ishida/python/ompl-python-dirty/wrapper.cpp:161
    #11 0x7f945bb03fd7 in ExperienceOMPLPlanner* pybind11::detail::initimpl::construct_or_initialize<ExperienceOMPLPlanner, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool, 0>(std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>&&, unsigned long&&, PlanningAlgorithmType&&, bool&&) /home/h-ishida/python/ompl-python-dirty/pybind11/include/pybind11/detail/init.h:76
    #12 0x7f945baed337 in pybind11::detail::initimpl::constructor<std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::execute<pybind11::class_<ExperienceOMPLPlanner>, , 0>(pybind11::class_<ExperienceOMPLPlanner>&)::{lambda(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool)#1}::operator()(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool) const /home/h-ishida/python/ompl-python-dirty/pybind11/include/pybind11/detail/init.h:206
    #13 0x7f945bb3ae34 in void pybind11::detail::argument_loader<pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::call_impl<void, pybind11::detail::initimpl::constructor<std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::execute<pybind11::class_<ExperienceOMPLPlanner>, , 0>(pybind11::class_<ExperienceOMPLPlanner>&)::{lambda(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool)#1}&, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, pybind11::detail::void_type>(pybind11::detail::initimpl::constructor<std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::execute<pybind11::class_<ExperienceOMPLPlanner>, , 0>(pybind11::class_<ExperienceOMPLPlanner>&)::{lambda(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool)#1}&, std::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul>, pybind11::detail::void_type&&) && /home/h-ishida/python/ompl-python-dirty/pybind11/include/pybind11/cast.h:1443
    #14 0x7f945bb34859 in std::enable_if<std::is_void<void>::value, pybind11::detail::void_type>::type pybind11::detail::argument_loader<pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::call<void, pybind11::detail::void_type, pybind11::detail::initimpl::constructor<std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::execute<pybind11::class_<ExperienceOMPLPlanner>, , 0>(pybind11::class_<ExperienceOMPLPlanner>&)::{lambda(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool)#1}&>(pybind11::detail::initimpl::constructor<std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::execute<pybind11::class_<ExperienceOMPLPlanner>, , 0>(pybind11::class_<ExperienceOMPLPlanner>&)::{lambda(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool)#1}&) && /home/h-ishida/python/ompl-python-dirty/pybind11/include/pybind11/cast.h:1417
    #15 0x7f945bb29d97 in pybind11::cpp_function::initialize<pybind11::detail::initimpl::constructor<std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::execute<pybind11::class_<ExperienceOMPLPlanner>, , 0>(pybind11::class_<ExperienceOMPLPlanner>&)::{lambda(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool)#1}, void, pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool, pybind11::name, pybind11::is_method, pybind11::sibling, pybind11::detail::is_new_style_constructor>(pybind11::class_<ExperienceOMPLPlanner>&&, void (*)(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool), pybind11::name const&, pybind11::is_method const&, pybind11::sibling const&, pybind11::detail::is_new_style_constructor const&)::{lambda(pybind11::detail::function_call&)#3}::operator()(pybind11::detail::function_call) const /home/h-ishida/python/ompl-python-dirty/pybind11/include/pybind11/pybind11.h:248
    #16 0x7f945bb2a1c7 in pybind11::cpp_function::initialize<pybind11::detail::initimpl::constructor<std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::execute<pybind11::class_<ExperienceOMPLPlanner>, , 0>(pybind11::class_<ExperienceOMPLPlanner>&)::{lambda(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool)#1}, void, pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool, pybind11::name, pybind11::is_method, pybind11::sibling, pybind11::detail::is_new_style_constructor>(pybind11::class_<ExperienceOMPLPlanner>&&, void (*)(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool), pybind11::name const&, pybind11::is_method const&, pybind11::sibling const&, pybind11::detail::is_new_style_constructor const&)::{lambda(pybind11::detail::function_call&)#3}::_FUN(pybind11::detail::function_call) /home/h-ishida/python/ompl-python-dirty/pybind11/include/pybind11/pybind11.h:223
    #17 0x7f945ba9d024 in pybind11::cpp_function::dispatcher(_object*, _object*, _object*) /home/h-ishida/python/ompl-python-dirty/pybind11/include/pybind11/pybind11.h:939
    #18 0x5f5b38 in PyCFunction_Call (/usr/bin/python3.8+0x5f5b38)
    #19 0x5f6705 in _PyObject_MakeTpCall (/usr/bin/python3.8+0x5f6705)
    #20 0x50ba57  (/usr/bin/python3.8+0x50ba57)
    #21 0x5f52b1 in PyObject_Call (/usr/bin/python3.8+0x5f52b1)
    #22 0x59c543  (/usr/bin/python3.8+0x59c543)
    #23 0x5a6ca6  (/usr/bin/python3.8+0x5a6ca6)
    #24 0x7f945ba8ce07 in pybind11_meta_call /home/h-ishida/python/ompl-python-dirty/pybind11/include/pybind11/detail/class.h:187
    #25 0x5f6705 in _PyObject_MakeTpCall (/usr/bin/python3.8+0x5f6705)
    #26 0x571142 in _PyEval_EvalFrameDefault (/usr/bin/python3.8+0x571142)
    #27 0x569d89 in _PyEval_EvalCodeWithName (/usr/bin/python3.8+0x569d89)
    #28 0x68e266 in PyEval_EvalCode (/usr/bin/python3.8+0x68e266)
    #29 0x67d9b0  (/usr/bin/python3.8+0x67d9b0)
    #30 0x67da2e  (/usr/bin/python3.8+0x67da2e)
    #31 0x67dad0  (/usr/bin/python3.8+0x67dad0)
    #32 0x67fbf6 in PyRun_SimpleFileExFlags (/usr/bin/python3.8+0x67fbf6)
    #33 0x6b8081 in Py_RunMain (/usr/bin/python3.8+0x6b8081)
    #34 0x6b840c in Py_BytesMain (/usr/bin/python3.8+0x6b840c)
    #35 0x7f945f7c9082 in __libc_start_main ../csu/libc-start.c:308
    #36 0x5faa2d in _start (/usr/bin/python3.8+0x5faa2d)

0x622000008e20 is located 0 bytes to the right of 5408-byte region [0x622000007900,0x622000008e20)
allocated by thread T0 here:
    #0 0x7f945faec587 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cc:104
    #1 0x7f945bb3c18d in __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<ompl::geometric::RRTConnect, std::allocator<ompl::geometric::RRTConnect>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/9/ext/new_allocator.h:114
    #2 0x7f945bb37854 in std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<ompl::geometric::RRTConnect, std::allocator<ompl::geometric::RRTConnect>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<ompl::geometric::RRTConnect, std::allocator<ompl::geometric::RRTConnect>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/9/bits/alloc_traits.h:443
    #3 0x7f945bb301f7 in std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<ompl::geometric::RRTConnect, std::allocator<ompl::geometric::RRTConnect>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<ompl::geometric::RRTConnect, std::allocator<ompl::geometric::RRTConnect>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<ompl::geometric::RRTConnect, std::allocator<ompl::geometric::RRTConnect>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/9/bits/allocated_ptr.h:97
    #4 0x7f945bb263a2 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<ompl::geometric::RRTConnect, std::allocator<ompl::geometric::RRTConnect>, std::shared_ptr<ompl::base::SpaceInformation> const&>(ompl::geometric::RRTConnect*&, std::_Sp_alloc_shared_tag<std::allocator<ompl::geometric::RRTConnect> >, std::shared_ptr<ompl::base::SpaceInformation> const&) /usr/include/c++/9/bits/shared_ptr_base.h:677
    #5 0x7f945bb1585a in std::__shared_ptr<ompl::geometric::RRTConnect, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<ompl::geometric::RRTConnect>, std::shared_ptr<ompl::base::SpaceInformation> const&>(std::_Sp_alloc_shared_tag<std::allocator<ompl::geometric::RRTConnect> >, std::shared_ptr<ompl::base::SpaceInformation> const&) /usr/include/c++/9/bits/shared_ptr_base.h:1344
    #6 0x7f945baff5e7 in std::shared_ptr<ompl::geometric::RRTConnect>::shared_ptr<std::allocator<ompl::geometric::RRTConnect>, std::shared_ptr<ompl::base::SpaceInformation> const&>(std::_Sp_alloc_shared_tag<std::allocator<ompl::geometric::RRTConnect> >, std::shared_ptr<ompl::base::SpaceInformation> const&) /usr/include/c++/9/bits/shared_ptr.h:359
    #7 0x7f945bae8ff2 in std::shared_ptr<ompl::geometric::RRTConnect> std::allocate_shared<ompl::geometric::RRTConnect, std::allocator<ompl::geometric::RRTConnect>, std::shared_ptr<ompl::base::SpaceInformation> const&>(std::allocator<ompl::geometric::RRTConnect> const&, std::shared_ptr<ompl::base::SpaceInformation> const&) /usr/include/c++/9/bits/shared_ptr.h:702
    #8 0x7f945bac7444 in std::shared_ptr<ompl::geometric::RRTConnect> std::make_shared<ompl::geometric::RRTConnect, std::shared_ptr<ompl::base::SpaceInformation> const&>(std::shared_ptr<ompl::base::SpaceInformation> const&) /usr/include/c++/9/bits/shared_ptr.h:718
    #9 0x7f945bab4e38 in ExperienceOMPLPlanner::ExperienceOMPLPlanner(std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool) /home/h-ishida/python/ompl-python-dirty/wrapper.cpp:161
    #10 0x7f945bb03fd7 in ExperienceOMPLPlanner* pybind11::detail::initimpl::construct_or_initialize<ExperienceOMPLPlanner, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool, 0>(std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>&&, unsigned long&&, PlanningAlgorithmType&&, bool&&) /home/h-ishida/python/ompl-python-dirty/pybind11/include/pybind11/detail/init.h:76
    #11 0x7f945baed337 in pybind11::detail::initimpl::constructor<std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::execute<pybind11::class_<ExperienceOMPLPlanner>, , 0>(pybind11::class_<ExperienceOMPLPlanner>&)::{lambda(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool)#1}::operator()(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool) const /home/h-ishida/python/ompl-python-dirty/pybind11/include/pybind11/detail/init.h:206
    #12 0x7f945bb3ae34 in void pybind11::detail::argument_loader<pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::call_impl<void, pybind11::detail::initimpl::constructor<std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::execute<pybind11::class_<ExperienceOMPLPlanner>, , 0>(pybind11::class_<ExperienceOMPLPlanner>&)::{lambda(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool)#1}&, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, pybind11::detail::void_type>(pybind11::detail::initimpl::constructor<std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::execute<pybind11::class_<ExperienceOMPLPlanner>, , 0>(pybind11::class_<ExperienceOMPLPlanner>&)::{lambda(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool)#1}&, std::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul>, pybind11::detail::void_type&&) && /home/h-ishida/python/ompl-python-dirty/pybind11/include/pybind11/cast.h:1443
    #13 0x7f945bb34859 in std::enable_if<std::is_void<void>::value, pybind11::detail::void_type>::type pybind11::detail::argument_loader<pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::call<void, pybind11::detail::void_type, pybind11::detail::initimpl::constructor<std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::execute<pybind11::class_<ExperienceOMPLPlanner>, , 0>(pybind11::class_<ExperienceOMPLPlanner>&)::{lambda(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool)#1}&>(pybind11::detail::initimpl::constructor<std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::execute<pybind11::class_<ExperienceOMPLPlanner>, , 0>(pybind11::class_<ExperienceOMPLPlanner>&)::{lambda(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool)#1}&) && /home/h-ishida/python/ompl-python-dirty/pybind11/include/pybind11/cast.h:1417
    #14 0x7f945bb29d97 in pybind11::cpp_function::initialize<pybind11::detail::initimpl::constructor<std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::execute<pybind11::class_<ExperienceOMPLPlanner>, , 0>(pybind11::class_<ExperienceOMPLPlanner>&)::{lambda(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool)#1}, void, pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool, pybind11::name, pybind11::is_method, pybind11::sibling, pybind11::detail::is_new_style_constructor>(pybind11::class_<ExperienceOMPLPlanner>&&, void (*)(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool), pybind11::name const&, pybind11::is_method const&, pybind11::sibling const&, pybind11::detail::is_new_style_constructor const&)::{lambda(pybind11::detail::function_call&)#3}::operator()(pybind11::detail::function_call) const /home/h-ishida/python/ompl-python-dirty/pybind11/include/pybind11/pybind11.h:248
    #15 0x7f945bb2a1c7 in pybind11::cpp_function::initialize<pybind11::detail::initimpl::constructor<std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool>::execute<pybind11::class_<ExperienceOMPLPlanner>, , 0>(pybind11::class_<ExperienceOMPLPlanner>&)::{lambda(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool)#1}, void, pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool, pybind11::name, pybind11::is_method, pybind11::sibling, pybind11::detail::is_new_style_constructor>(pybind11::class_<ExperienceOMPLPlanner>&&, void (*)(pybind11::detail::value_and_holder&, std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, std::function<bool (std::vector<double, std::allocator<double> >)>, unsigned long, PlanningAlgorithmType, bool), pybind11::name const&, pybind11::is_method const&, pybind11::sibling const&, pybind11::detail::is_new_style_constructor const&)::{lambda(pybind11::detail::function_call&)#3}::_FUN(pybind11::detail::function_call) /home/h-ishida/python/ompl-python-dirty/pybind11/include/pybind11/pybind11.h:223
    #16 0x7f945ba9d024 in pybind11::cpp_function::dispatcher(_object*, _object*, _object*) /home/h-ishida/python/ompl-python-dirty/pybind11/include/pybind11/pybind11.h:939
    #17 0x5f5b38 in PyCFunction_Call (/usr/bin/python3.8+0x5f5b38)

SUMMARY: AddressSanitizer: heap-buffer-overflow /usr/include/c++/9/bits/stl_pair.h:230 in std::pair<ompl::base::State*, ompl::base::State*>::pair<ompl::base::State*, ompl::base::State*, true>()
Shadow bytes around the buggy address:
  0x0c447fff9170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c447fff9180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c447fff9190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c447fff91a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c447fff91b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0c447fff91c0: 00 00 00 00[fa]fa fa fa fa fa fa fa fa fa fa fa
  0x0c447fff91d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c447fff91e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c447fff91f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c447fff9200: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c447fff9210: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==43904==ABORTING
HiroIshida commented 1 year ago

Maybe this is related?? https://github.com/pybind/pybind11/issues/4365

HiroIshida commented 1 year ago

This is caused by mismatch of shared library (from soure) and header (from apt)