rviz crashes with tf2, never happen before
Hi,
Suddenly rviz crashes on my laptop today. I ran gdb
to backtrace the crash and it shows that it has something to do with tf2
and boost
libraries.
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff83fff700 (LWP 19349)]
0x00007ffff0726768 in boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, tf2_ros::TransformListener, ros::MessageEvent<tf2_msgs::TFMessage_<std::allocator<void> > const> const&>, boost::_bi::list2<boost::_bi::value<tf2_ros::TransformListener*>, boost::arg<1> > >, void, boost::shared_ptr<tf2_msgs::TFMessage_<std::allocator<void> > const> const&>::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<tf2_msgs::TFMessage_<std::allocator<void> > const> const&) () from /opt/ros/kinetic/lib/libtf2_ros.so
(gdb) bt
#0 0x00007ffff0726768 in boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, tf2_ros::TransformListener, ros::MessageEvent<tf2_msgs::TFMessage_<std::allocator<void> > const> const&>, boost::_bi::list2<boost::_bi::value<tf2_ros::TransformListener*>, boost::arg<1> > >, void, boost::shared_ptr<tf2_msgs::TFMessage_<std::allocator<void> > const> const&>::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<tf2_msgs::TFMessage_<std::allocator<void> > const> const&) () from /opt/ros/kinetic/lib/libtf2_ros.so
#1 0x00007ffff07244dc in boost::detail::function::void_function_obj_invoker1<boost::function<void (boost::shared_ptr<tf2_msgs::TFMessage_<std::allocator<void> > const> const&)>, void, boost::shared_ptr<tf2_msgs::TFMessage_<std::allocator<void> > const> >::invoke(boost::detail::function::function_buffer&, boost::shared_ptr<tf2_msgs::TFMessage_<std::allocator<void> > const>) () from /opt/ros/kinetic/lib/libtf2_ros.so
#2 0x00007ffff0726f63 in ros::SubscriptionCallbackHelperT<boost::shared_ptr<tf2_msgs::TFMessage_<std::allocator<void> > const> const&, void>::call(ros::SubscriptionCallbackHelperCallParams&) ()
from /opt/ros/kinetic/lib/libtf2_ros.so
#3 0x00007ffff4b4de2d in ros::SubscriptionQueue::call() () from /opt/ros/kinetic/lib/libroscpp.so
#4 0x00007ffff4af36f8 in ros::CallbackQueue::callOneCB(ros::CallbackQueue::TLS*) ()
from /opt/ros/kinetic/lib/libroscpp.so
#5 0x00007ffff4af50fb in ros::CallbackQueue::callAvailable(ros::WallDuration) ()
from /opt/ros/kinetic/lib/libroscpp.so
#6 0x00007ffff0720c42 in tf2_ros::TransformListener::dedicatedListenerThread() ()
from /opt/ros/kinetic/lib/libtf2_ros.so
#7 0x00007ffff60f85d5 in ?? () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.58.0
#8 0x00007ffff5ed16ba in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#9 0x00007ffff6aae41d in clone () from /lib/x86_64-linux-gnu/libc.so.6
I have no idea what happens since everything worked fine for me for the last 6 months. Any idea how I can fix this? Thanks so much for your help!
Do you have any outstanding ROS pkg upgrades?
Updated any non-ROS packages recently?
@gvdhoorn no I don't have any outstanding ROS pkg upgrades and yesterday I did perform an
apt-get update
. Anyelse that I can do?So I asked one of my labmate who said he used the laptop yesterday (the laptop is attached to a robot). He said that he reinstalled
tf2-geometry-msgs
viaapt-get
to build his pkg...Do you have any packages built from source? If you did an apt upgrade or install there's possibly dependencies that changed and you'll need to rebuild. If no source builds, make sure that you updated/upgraded all your packages and not just a subset of them to ensure they're compatible.
@tfoote@gvdhoorn So I clean up the workspace with
catkin clean -y
and rebuild my pkgs but the problem persists. Is there anything else that I can do?You likely have a binary incompatibility between versions of your packages. You should make sure that all packages are up to date and they you're not pulling packages from multiple apt repositories.