Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rviz crashes from laser scan/point cloud errors (ros-pkg ticket #3422) #269

Closed
hershwg opened this issue Sep 19, 2012 · 1 comment
Closed
Labels

Comments

@hershwg
Copy link
Member

hershwg commented Sep 19, 2012

laser scan is arriving in a separate thread, and setting the status there -- and one of the connections in its signal is not safe to be called from a thread other than the wx one:

{{{
#0 0xb7fd6410 in __kernel_vsyscall ()
#1 0xb6616085 in raise () from /lib/tls/i686/cmov/libc.so.6
#2 0xb6617a01 in abort () from /lib/tls/i686/cmov/libc.so.6
#3 0xb664eb7c in ?? () from /lib/tls/i686/cmov/libc.so.6
#4 0xb6656a85 in ?? () from /lib/tls/i686/cmov/libc.so.6
#5 0xb665a4f0 in free () from /lib/tls/i686/cmov/libc.so.6
#6 0xb5f32b81 in g_free () from /usr/lib/libglib-2.0.so.0
#7 0xb60e87a9 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#8 0xb60e9dd1 in gdk_region_union () from /usr/lib/libgdk-x11-2.0.so.0
#9 0xb60eda9d in gdk_window_invalidate_maybe_recurse () from

/usr/lib/libgdk-x11-2.0.so.0
#10 0xb60edc70 in gdk_window_invalidate_region () from

/usr/lib/libgdk-x11-2.0.so.0
#11 0xb60edd02 in gdk_window_invalidate_rect () from

/usr/lib/libgdk-x11-2.0.so.0
#12 0xb6bb44cb in wxWindow::Refresh () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#13 0xb796d160 in wxPropertyGrid::DrawItems (this=0x8890f00,

p1=0xb1265910, p2=0xb1265910) at /usr/include/wx-2.8/wx/window.h:729
#14 0xb796d661 in wxPropertyGridInterface::SetPropertyLabel

(this=0x88910b8, id=@0xaef6f68c, newproplabel=@0xaef6f694)
at ./include/wx/propgrid/propgrid.h:7551
#15 0xb71fa3fc in rviz::CategoryProperty::setLabel (this=0xb1265528,

label=@0xaef6f6e0)
at /wg/adm/wim/ros/pkgs/visualization/rviz/src/rviz/properties/property.cpp:1005
#16 0xb723f941 in rviz::DisplaysPanel::setDisplayCategoryLabel

(this=0x885d7f0, wrapper=0xb1264c38, index=7)
at /wg/adm/wim/ros/pkgs/visualization/rviz/src/rviz/displays_panel.cpp:256
#17 0xb7240c17 in rviz::DisplaysPanel::onDisplayStateChanged

(this=0x885d7f0, display=0xb1265cf8)
at /wg/adm/wim/ros/pkgs/visualization/rviz/src/rviz/displays_panel.cpp:390
#18 0xb724259d in

boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void,
boost::_mfi::mf1<void, rviz::DisplaysPanel, rviz::Display*>,
boost::_bi::list2boost::_bi::value<rviz::DisplaysPanel*,
boost::arg<1> > >, void, rviz::Display*>::invoke
(function_obj_ptr=@0xae6a0a20,
a0=0xb1265cf8) at
/opt/ros/include/boost-1_37/boost/bind/mem_fn_template.hpp:162
#19 0xb728c660 in boost::function1<void, rviz::Display*>::operator()

(this=0xae6a0a1c, a0=0xb1265cf8)
at /opt/ros/include/boost-1_37/boost/function/function_template.hpp:989
#20 0xb728cc5c in boost::signal1<void, rviz::Display*,

boost::last_value, int, std::less, boost::function<void
()(rviz::Display*)> >::operator() (this=0xb1265de8, a1=0xb1265cf8) at
/opt/ros/include/boost-1_37/boost/signals/signal_template.hpp:119
#21 0xb72897a6 in rviz::Display::setStatus (this=0xb1265cf8,

level=rviz::status_levels::Ok, name=@0xaef6fce0, text=@0xaef6fcdc)
at /wg/adm/wim/ros/pkgs/visualization/rviz/src/rviz/display.cpp:179
#22 0xb72550d6 in rviz::FrameManager::messageArrived (this=0x8d50278,

header=@0xa558b270, caller_id=@0xaef6fd50, display=0xb1265cf8)
at /wg/adm/wim/ros/pkgs/visualization/rviz/src/rviz/frame_manager.cpp:227
#23 0xad2cd0bb in

rviz::FrameManager::messageCallback<sensor_msgs::LaserScan>
(this=0x8d50278, msg=@0xa70de358, display=0xb1265cf8)
at /wg/adm/wim/ros/pkgs/visualization/rviz/src/rviz/frame_manager.h:103
#24 0xad2c9a7e in

boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void,
boost::mfi::mf2<void, rviz::FrameManager,
boost::shared_ptr<sensor_msgs::LaserScan const> const&,
rviz::Display
>,
boost::_bi::list3<boost::_bi::valuerviz::FrameManager_,
boost::arg<1>, boost::_bi::valuerviz::Display* > >, void,
boost::shared_ptr<sensor_msgs::LaserScan const> const&>::invoke
(function_obj_ptr=@0xb12baaf0, a0=@0xa70de358)
at /opt/ros/include/boost-1_37/boost/bind/mem_fn_template.hpp:274
#25 0xad2cdcd0 in boost::function1<void,

boost::shared_ptr<sensor_msgs::LaserScan const> const&>::operator()
(this=0xb12baaec, a0=@0xa70de358)
at /opt/ros/include/boost-1_37/boost/function/function_template.hpp:989
#26 0xad2ce2e7 in boost::signal1<void,

boost::shared_ptr<sensor_msgs::LaserScan const> const&,
boost::last_value, int, std::less, boost::function<void
()(boost::shared_ptr<sensor_msgs::LaserScan const> const&)>

::operator() (this=0xb1265f68, a1=@0xa70de358)
at /opt/ros/include/boost-1_37/boost/signals/signal_template.hpp:119

27 0xad2d1c45 in

tf::MessageFilter<sensor_msgs::LaserScan>::testMessage
(this=0xb1265f60, message=@0xa70de358)
at /u/wim/ros/ros-rc/core/message_filters/include/message_filters/simple_filter.h:88

28 0xad2d2bf6 in

tf::MessageFilter<sensor_msgs::LaserScan>::testMessages
(this=0xb1265f60)
at /u/wim/ros/pkgs/geometry/tf/include/tf/message_filter.h:410

29 0xad2d4468 in

tf::MessageFilter<sensor_msgs::LaserScan>::maxRateTimerCallback
(this=0xb1265f60)
---Type to continue, or q to quit---
}}}

trac data:

@hershwg
Copy link
Member Author

hershwg commented Sep 19, 2012

[jfaust] r26639 should fix this, though I don't have a good repro case

@hershwg hershwg closed this as completed Sep 19, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant