When I try and run the turtlebot launch (off of the latest version of this repo) I get a
stack smashing error, and the program SIGABRTs.
I tried to debug this by running it in GCC's ASAN (https://github.com/google/sanitizers/wiki/AddressSanitizer), but then everything works.
(maybe it is a race condidtion being covered up because of ASANs overhead?)
#0 0x00007ffff4b17418 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1 0x00007ffff4b1901a in __GI_abort () at abort.c:89
#2 0x00007ffff4b5972a in __libc_message (do_abort=do_abort@entry=1, fmt=fmt@entry=0x7ffff4c70c7f "*** %s ***: %s terminated\n") at ../sysdeps/posix/libc_fatal.c:175
#3 0x00007ffff4bfa89c in __GI___fortify_fail (msg=<optimized out>, msg@entry=0x7ffff4c70c61 "stack smashing detected") at fortify_fail.c:37
#4 0x00007ffff4bfa840 in __stack_chk_fail () at stack_chk_fail.c:28
#5 0x00007ffff7984596 in ceres::internal::CovarianceImpl::ComputeCovarianceValuesUsingSuiteSparseQR() () from /home/rohan/cartographer_catkin_ws/devel_isolated/ceres_catkin/lib/libceres.so.1
#6 0x00007ffff7989ea5 in ceres::internal::CovarianceImpl::ComputeCovarianceValues() () from /home/rohan/cartographer_catkin_ws/devel_isolated/ceres_catkin/lib/libceres.so.1
#7 0x00007ffff7989f59 in ceres::internal::CovarianceImpl::Compute(std::vector<std::pair<double const*, double const*>, std::allocator<std::pair<double const*, double const*> > > const&, ceres::internal::ProblemImpl*) ()
from /home/rohan/cartographer_catkin_ws/devel_isolated/ceres_catkin/lib/libceres.so.1
#8 0x000000000061832a in cartographer::mapping_2d::scan_matching::CeresScanMatcher::Match(cartographer::transform::Rigid2<double> const&, cartographer::transform::Rigid2<double> const&, std::vector<Eigen::Matrix<float, 2, 1, 0, 2, 1>, std::allocator<Eigen::Matrix<float, 2, 1, 0, 2, 1> > > const&, cartographer::mapping_2d::ProbabilityGrid const&, cartographer::transform::Rigid2<double>*, Eigen::Matrix<double, 3, 3, 0, 3, 3>*, ceres::Solver::Summary*) const ()
#9 0x0000000000601df8 in cartographer::mapping_2d::LocalTrajectoryBuilder::ScanMatch(std::chrono::time_point<cartographer::common::UniversalTimeScaleClock, std::chrono::duration<long, std::ratio<1l, 10000000l> > >, cartographer::transform::Rigid3<double> const&, cartographer::transform::Rigid3<double> const&, cartographer::sensor::LaserFan const&, cartographer::transform::Rigid3<double>*, Eigen::Matrix<double, 6, 6, 0, 6, 6>*) ()
#10 0x0000000000602454 in cartographer::mapping_2d::LocalTrajectoryBuilder::AddHorizontalLaserFan(std::chrono::time_point<cartographer::common::UniversalTimeScaleClock, std::chrono::duration<long, std::ratio<1l, 10000000l> > >, cartographer::sensor::LaserFan3D const&) ()
#11 0x0000000000605197 in cartographer::mapping_2d::GlobalTrajectoryBuilder::AddHorizontalLaserFan(std::chrono::time_point<cartographer::common::UniversalTimeScaleClock, std::chrono::duration<long, std::ratio<1l, 10000000l> > >, cartographer::sensor::LaserFan3D const&) ()
#12 0x000000000053bf9f in cartographer_ros::(anonymous namespace)::Node::AddHorizontalLaserFan(long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cartographer::sensor::proto::LaserScan const&) ()
#13 0x000000000053f4b1 in cartographer_ros::(anonymous namespace)::Node::HandleSensorData(long, std::unique_ptr<cartographer_ros::(anonymous namespace)::SensorData, std::default_delete<cartographer_ros::(anonymous namespace)::SensorData> >) ()
#14 0x000000000053c800 in cartographer_ros::(anonymous namespace)::Node::Initialize()::{lambda(long, std::unique_ptr<cartographer_ros::(anonymous namespace)::SensorData, std::default_delete<cartographer_ros::(anonymous namespace)::SensorData> >)#2}::operator()(long, std::unique_ptr<cartographer_ros::(anonymous namespace)::SensorData, std::default_delete<cartographer_ros::(anonymous namespace)::SensorData> >) const ()
#15 0x000000000054263b in std::_Function_handler<void (long, std::unique_ptr<cartographer_ros::(anonymous namespace)::SensorData, std::default_delete<cartographer_ros::(anonymous namespace)::SensorData> >), cartographer_ros::(anonymous namespace)::Node::Initialize()::{lambda(long, std::unique_ptr<cartographer_ros::(anonymous namespace)::SensorData, std::default_delete<cartographer_ros::(anonymous namespace)::SensorData> >)#2}>::_M_invoke(std::_Any_data const&, long&&, std::unique_ptr<cartographer_ros::(anonymous namespace)::SensorData, std::default_delete<cartographer_ros::(anonymous namespace)::SensorData> >&&) ()
#16 0x00000000005427cb in std::function<void (long, std::unique_ptr<cartographer_ros::(anonymous namespace)::SensorData, std::default_delete<cartographer_ros::(anonymous namespace)::SensorData> >)>::operator()(long, std::unique_ptr<cartographer_ros::(anonymous namespace)::SensorData, std::default_delete<cartographer_ros::(anonymous namespace)::SensorData> >) const ()
#17 0x0000000000541646 in cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::AddTrajectory(int, std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<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&, std::function<void (long, std::unique_ptr<cartographer_ros::(anonymous namespace)::SensorData, std::default_delete<cartographer_ros::(anonymous namespace)::SensorData> >)>)::{lambda(std::unique_ptr<cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value, std::default_delete<cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value> >)#1}::operator()(std::unique_ptr<cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value, std::default_delete<cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value> >) const ()
#18 0x0000000000543d52 in std::_Function_handler<void (std::unique_ptr<cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value, std::default_delete<cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value> >), cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::AddTrajectory(int, std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<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&, std::function<void (long, std::unique_ptr<cartographer_ros::(anonymous namespace)::SensorData, std::default_delete<cartographer_ros::(anonymous namespace)::SensorData> >)>)::{lambda(std::unique_ptr<cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value, std::default_delete<cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value> >)#1}>::_M_invoke(std::_Any_data const&, std::unique_ptr<cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value, std::default_delete<cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value> >&&) ()
#19 0x0000000000544a2d in std::function<void (std::unique_ptr<cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value, std::default_delete<cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value> >)>::operator()(std::unique_ptr<cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value, std::default_delete<cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value> >) const ()
#20 0x0000000000543719 in cartographer::common::OrderedMultiQueue<cartographer::mapping::SensorCollatorQueueKey, long, cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value>::Dispatch() ()
#21 0x00000000005421aa in cartographer::common::OrderedMultiQueue<cartographer::mapping::SensorCollatorQueueKey, long, cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value>::Add(cartographer::mapping::SensorCollatorQueueKey const&, long const&, std::unique_ptr<cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value, std::default_delete<cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::Value> >) ()
#22 0x0000000000540652 in cartographer::mapping::SensorCollator<cartographer_ros::(anonymous namespace)::SensorData>::AddSensorData(int, long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<cartographer_ros::(anonymous namespace)::SensorData, std::default_delete<cartographer_ros::(anonymous namespace)::SensorData> >) ()
#23 0x000000000053bdae in cartographer_ros::(anonymous namespace)::Node::LaserScanMessageCallback(boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&) ()
#24 0x000000000054801c in boost::_mfi::mf1<void, cartographer_ros::(anonymous namespace)::Node, boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&>::operator()(cartographer_ros::(anonymous namespace)::Node*, boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&) const ()
#25 0x000000000054777d in void boost::_bi::list2<boost::_bi::value<cartographer_ros::(anonymous namespace)::Node*>, boost::arg<1> >::operator()<boost::_mfi::mf1<void, cartographer_ros::(anonymous namespace)::Node, boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&>, boost::_bi::list1<boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&> >(boost::_bi::type<void>, boost::_mfi::mf1<void, cartographer_ros::(anonymous namespace)::Node, boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&>&, boost::_bi::list1<boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&>&, int) ()
#26 0x000000000054694d in void boost::_bi::bind_t<void, boost::_mfi::mf1<void, cartographer_ros::(anonymous namespace)::Node, boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&>, boost::_bi::list2<boost::_bi::value<cartographer_ros::(anonymous namespace)::Node*>, boost::arg<1> > >::operator()<boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&>(boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&) ()
#27 0x00000000005458e9 in boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, cartographer_ros::(anonymous namespace)::Node, boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&>, boost::_bi::list2<boost::_bi::value<cartographer_ros::(anonymous namespace)::Node*>, boost::arg<1> > >, void, boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&>::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&) ()
#28 0x00000000005738fd in boost::function1<void, boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&>::operator()(boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&) const ()
#29 0x000000000056fbd1 in boost::detail::function::void_function_obj_invoker1<boost::function<void (boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&)>, void, boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> >::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const>) ()
#30 0x000000000057fe46 in boost::function1<void, boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> >::operator()(boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const>) const ()
#31 0x000000000057dae9 in ros::SubscriptionCallbackHelperT<boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&, void>::call(ros::SubscriptionCallbackHelperCallParams&) ()
#32 0x00007ffff63cf25d in ros::SubscriptionQueue::call() () from /opt/ros/kinetic/lib/libroscpp.so
#33 0x00007ffff6379880 in ros::CallbackQueue::callOneCB(ros::CallbackQueue::TLS*) () from /opt/ros/kinetic/lib/libroscpp.so
#34 0x00007ffff637ac83 in ros::CallbackQueue::callAvailable(ros::WallDuration) () from /opt/ros/kinetic/lib/libroscpp.so
#35 0x00007ffff63d29b9 in ros::SingleThreadedSpinner::spin(ros::CallbackQueue*) () from /opt/ros/kinetic/lib/libroscpp.so
#36 0x00007ffff63b83cb in ros::spin() () from /opt/ros/kinetic/lib/libroscpp.so
#37 0x000000000053f553 in cartographer_ros::(anonymous namespace)::Node::SpinForever() ()
#38 0x000000000053f6eb in cartographer_ros::(anonymous namespace)::Run() ()
#39 0x000000000054011a in main ()