locusrobotics / robot_navigation

Spiritual successor to ros-planning/navigation.
444 stars 149 forks source link

[robot_nav_rviz_plugins] Polygon2D crashed under Noetic #86

Closed Timple closed 2 years ago

Timple commented 3 years ago

[robot_nav_rviz_plugins] Polygon2D crashed under Noetic

Terminal output:

qt5ct: using qt5ct plugin
[ INFO] [1617030354.240585298]: rviz version 1.14.6
[ INFO] [1617030354.240622348]: compiled against Qt version 5.12.8
[ INFO] [1617030354.240630826]: compiled against OGRE version 1.9.0 (Ghadamon)
[ INFO] [1617030354.249384809]: Forcing OpenGl version 0.
[ INFO] [1617030354.654440123]: Stereo is NOT SUPPORTED
[ INFO] [1617030354.654605205]: OpenGL device: Quadro M1000M/PCIe/SSE2
[ INFO] [1617030354.654636445]: OpenGl version: 4.6 (GLSL 4.6).
qt5ct: D-Bus global menu: no
[ WARN] [1617030358.204115709]: OGRE EXCEPTION(5:ItemIdentityException): Cannot find a group named rviz in ResourceGroupManager::isResourceGroupInitialised at /build/ogre-1.9-kiU5_5/ogre-1.9-1.9.0+dfsg1/OgreMain/src/OgreResourceGroupManager.cpp (line 1916)
terminate called after throwing an instance of 'Ogre::ItemIdentityException'
  what():  OGRE EXCEPTION(5:ItemIdentityException): Cannot find a group named rviz in ResourceGroupManager::isResourceGroupInitialised at /build/ogre-1.9-kiU5_5/ogre-1.9-1.9.0+dfsg1/OgreMain/src/OgreResourceGroupManager.cpp (line 1916)
Aborted (core dumped)

To reproduce: Open rviz and add the Polygon2D visualization. Using latest apt.

Any more things I can do to help debugging?

Timple commented 3 years ago

I used backward_ros to create a stacktrace when building the latest master:

qt5ct: using qt5ct plugin
[ INFO] [1617030578.982143846]: rviz version 1.14.6
[ INFO] [1617030578.982186041]: compiled against Qt version 5.12.8
[ INFO] [1617030578.982198356]: compiled against OGRE version 1.9.0 (Ghadamon)
[ INFO] [1617030578.991089453]: Forcing OpenGl version 0.
[ INFO] [1617030579.425028557]: Stereo is NOT SUPPORTED
[ INFO] [1617030579.425180197]: OpenGL device: Quadro M1000M/PCIe/SSE2
[ INFO] [1617030579.425243426]: OpenGl version: 4.6 (GLSL 4.6).
qt5ct: D-Bus global menu: no
[ WARN] [1617030583.940529549]: OGRE EXCEPTION(5:ItemIdentityException): Cannot find a group named rviz in ResourceGroupManager::isResourceGroupInitialised at /build/ogre-1.9-kiU5_5/ogre-1.9-1.9.0+dfsg1/OgreMain/src/OgreResourceGroupManager.cpp (line 1916)
terminate called after throwing an instance of 'Ogre::ItemIdentityException'
  what():  OGRE EXCEPTION(5:ItemIdentityException): Cannot find a group named rviz in ResourceGroupManager::isResourceGroupInitialised at /build/ogre-1.9-kiU5_5/ogre-1.9-1.9.0+dfsg1/OgreMain/src/OgreResourceGroupManager.cpp (line 1916)
Stack trace (most recent call last):
#31   Object "/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.8", at 0x7f70a138da65, in QApplicationPrivate::notify_helper(QObject*, QEvent*)
#30   Object "/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.8", at 0x7f70a13d02b5, in QWidget::event(QEvent*)
#29   Object "/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.8", at 0x7f70a1484034, in QAbstractButton::mouseReleaseEvent(QMouseEvent*)
#28   Object "/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.8", at 0x7f70a1483e72, in 
#27   Object "/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.8", at 0x7f70a1482a2d, in 
#26   Object "/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.8", at 0x7f70a1482805, in QAbstractButton::clicked(bool)
#25   Object "/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.12.8", at 0x7f70a0f8c2ff, in QMetaObject::activate(QObject*, int, int, void**)
#24   Object "/home/tim/ros/harvey/system/devel/.private/rviz/lib/librviz.so", at 0x7f70a1b94005, in rviz::DisplaysPanel::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)
#23   Object "/home/tim/ros/harvey/system/devel/.private/rviz/lib/librviz.so", at 0x7f70a1bcec97, in rviz::DisplaysPanel::onNewDisplay()
#22   Object "/home/tim/ros/harvey/system/devel/.private/rviz/lib/librviz.so", at 0x7f70a1ced8b6, in rviz::VisualizationManager::createDisplay(QString const&, QString const&, bool)
#21   Object "/home/tim/ros/harvey/system/devel/.private/rviz/lib/librviz.so", at 0x7f70a1bcb220, in rviz::DisplayGroup::createDisplay(QString const&)
#20   Object "/home/tim/ros/harvey/system/devel/.private/rviz/lib/librviz.so", at 0x7f70a1bc97ac, in rviz::ClassIdRecordingFactory<rviz::Display>::make(QString const&, QString*)
#19   Object "/home/tim/ros/harvey/system/devel/.private/rviz/lib/librviz.so", at 0x7f70a1babe70, in rviz::DisplayFactory::makeRaw(QString const&, QString*)
#18   Object "/home/tim/ros/harvey/system/devel/.private/rviz/lib/librviz.so", at 0x7f70a1bafb1e, in rviz::PluginlibFactory<rviz::Display>::makeRaw(QString const&, QString*)
#17   Object "/home/tim/ros/harvey/system/devel/.private/rviz/lib/librviz.so", at 0x7f70a1bb27d8, in pluginlib::ClassLoader<rviz::Display>::createUnmanagedInstance(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
#16   Object "/home/tim/ros/harvey/system/devel/.private/rviz/lib/librviz.so", at 0x7f70a1bb59b9, in rviz::Display* class_loader::MultiLibraryClassLoader::createUnmanagedInstance<rviz::Display>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
#15   Object "/home/tim/ros/harvey/system/devel/.private/rviz/lib/librviz.so", at 0x7f70a1bb9c33, in rviz::Display* class_loader::ClassLoader::createUnmanagedInstance<rviz::Display>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
#14   Object "/home/tim/ros/harvey/system/devel/.private/rviz/lib/librviz.so", at 0x7f70a1bbbfa8, in rviz::Display* class_loader::ClassLoader::createRawInstance<rviz::Display>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)
#13   Object "/home/tim/ros/harvey/system/devel/.private/rviz/lib/librviz.so", at 0x7f70a1bbe227, in rviz::Display* class_loader::impl::createInstance<rviz::Display>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, class_loader::ClassLoader*)
#12   Object "/opt/ros/noetic/lib/librobot_nav_rviz_plugins.so", at 0x7f706d2789bf, in class_loader::impl::MetaObject<robot_nav_rviz_plugins::PolygonDisplay, rviz::Display>::create() const
#11   Object "/opt/ros/noetic/lib/librobot_nav_rviz_plugins.so", at 0x7f706d2698d3, in robot_nav_rviz_plugins::PolygonDisplay::PolygonDisplay()
#10   Object "/opt/ros/noetic/lib/librobot_nav_rviz_plugins.so", at 0x7f706d29bf4d, in robot_nav_rviz_plugins::PolygonMaterial::PolygonMaterial()
#9    Object "/usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0", at 0x7f709ff9d281, in Ogre::MaterialManager::create(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&, bool, Ogre::ManualResourceLoader*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, Ogre::STLAllocator<std::pair<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> > >, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > > const*)
#8    Object "/usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0", at 0x7f70a007877f, in Ogre::ResourceManager::createResource(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&, bool, Ogre::ManualResourceLoader*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, Ogre::STLAllocator<std::pair<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> > >, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > > const*)
#7    Object "/usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0", at 0x7f70a007b049, in Ogre::ResourceManager::addImpl(Ogre::SharedPtr<Ogre::Resource>&)
#6    Object "/usr/lib/x86_64-linux-gnu/libOgreMain.so.1.9.0", at 0x7f709fe7e85f, in 
#5    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28", at 0x7f70a0ba1798, in __cxa_throw
#4    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28", at 0x7f70a0ba14e6, in std::terminate()
#3    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28", at 0x7f70a0ba147b, in 
#2    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28", at 0x7f70a0b95950, in 
#1    Source "/build/glibc-eX1tMB/glibc-2.31/stdlib/abort.c", line 79, in abort [0x7f70a090f858]
#0    Source "../sysdeps/unix/sysv/linux/raise.c", line 51, in raise [0x7f70a093018b]
Aborted (Signal sent by tkill() 468936 1000)
Aborted (core dumped)
DLu commented 3 years ago

Using 20.04 I assume?

DLu commented 3 years ago

Also, does it crash when you don't supply data, or only when you do? If the latter, please send me a bag with the polygon data.

Timple commented 3 years ago

It crashes without supplying any data. Just a roscore and rviz with the plugin enabled.

DLu commented 3 years ago

Okay, I've replicated on my machine, both from binary and source. I'm unclear why this problem did not surface during the initial testing. Ogre is black magic to me.

The annoying thing is I've been here before, and I feel there was some reason why on this line I used "rviz" instead of "robot_nav_rviz_plugins" or Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME. With the latter, it doesn't crash immediately. Will investigate further.

Timple commented 3 years ago

Awesome, thanks for looking into it!

Timple commented 3 years ago

Seems related: https://github.com/jsk-ros-pkg/jsk_visualization/issues/799 also polygons involved.

KenYN commented 3 years ago

The annoying thing is I've been here before, and I feel there was some reason why on this line I used "rviz" instead of "robot_nav_rviz_plugins" or Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME. With the latter, it doesn't crash immediately. Will investigate further.

This change works for me to fix https://github.com/jsk-ros-pkg/jsk_visualization/issues/799.

chrisppp4 commented 3 years ago

The annoying thing is I've been here before, and I feel there was some reason why on this line I used "rviz" instead of "robot_nav_rviz_plugins" or Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME. With the latter, it doesn't crash immediately. Will investigate further.

This change works for me to fix jsk-ros-pkg/jsk_visualization#799.

Could you please provide some detailed information about fixing jsk_rviz_plugins crash problem? I'll really appreciate it cuz this problem is really annoying. PolygonArray under jsk_rviz_plugins works just fine in ros-melodic. But it just doesn't work in ros-noetic.