Open lynncodd opened 10 years ago
Is this still the case with 1.9.34
?
I'm not sure. Unfortunately, I'm not in a position to try it out right now. I'll put this on my to do list and will report back when I test it out. Just can't guarantee how long it'll be...not working with ROS right at this moment.
Thanks for responding! Lynn
On Wed, Feb 12, 2014 at 5:39 PM, William Woodall notifications@github.comwrote:
Is this still the case with 1.9.34?
Reply to this email directly or view it on GitHubhttps://github.com/ros-visualization/rviz/issues/696#issuecomment-34927224 .
Lynn Coddington Gilbert Vice President & Sr. Applications Engineer Robotic Paradigm Systemslcoddingtongilbert@gmail.com lynn@roboticparadigmsystems.com www.roboticparadigmsystems.com www.facebook.com/RoboticParadigmSystems 678-428-0935
I have a similar issue with ROS Indigo (running on 32 bit Ubuntu 14.04). I run on a fairly old laptop and use gl software rendering (LIBGL_ALWAYS_SOFTWARE=1). The steps to reproduce are exactly the same as above. However, the stack trace shows a slightly different behavior (see below).
LIBGL_ALWAYS_SOFTWARE=1 gdb rviz
GNU gdb (Ubuntu 7.7-0ubuntu3.1) 7.7
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from rviz...(no debugging symbols found)...done.
(gdb) r
Starting program: /opt/ros/indigo/bin/rviz
warning: the debug information found in "/lib64/ld-2.19.so" does not match "/lib64/ld-linux-x86-64.so.2" (CRC mismatch).
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffd9099700 (LWP 6952)]
[New Thread 0x7fffd8898700 (LWP 6953)]
[New Thread 0x7fffd3fff700 (LWP 6954)]
[New Thread 0x7fffd37fe700 (LWP 6955)]
[ INFO] [1408733493.761018015]: rviz version 1.11.3
[ INFO] [1408733493.761333285]: compiled against OGRE version 1.8.1 (Byatis)
[New Thread 0x7fffd2df1700 (LWP 6959)]
[New Thread 0x7fffd25f0700 (LWP 6960)]
[New Thread 0x7fffd1def700 (LWP 6961)]
[New Thread 0x7fffd15ee700 (LWP 6973)]
[Thread 0x7fffd3fff700 (LWP 6954) exited]
[New Thread 0x7fffd3fff700 (LWP 6974)]
[New Thread 0x7fffb8b49700 (LWP 6975)]
[New Thread 0x7fffb2c01700 (LWP 6976)]
[New Thread 0x7fffb2400700 (LWP 6977)]
[ INFO] [1408733494.906334902]: Stereo is NOT SUPPORTED
[ INFO] [1408733494.906594997]: OpenGl version: 2.1 (GLSL 1.2).
[New Thread 0x7fffb1bff700 (LWP 6990)]
[New Thread 0x7fffb13fe700 (LWP 6991)]
[New Thread 0x7fffa2a29700 (LWP 7007)]
[Thread 0x7fffd37fe700 (LWP 6955) exited]
Program received signal SIGSEGV, Segmentation fault.
__strcmp_sse2_unaligned () at ../sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S:29
29 ../sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: No such file or directory.
(gdb) bt
#0 __strcmp_sse2_unaligned () at ../sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S:29
#1 0x00007fff95b7a09e in QMetaType::registerNormalizedType(QByteArray const&, void (*)(void*), void* (*)(void const*), void (*)(void*), void* (*)(void*, void const*), int, QFlags<QMetaType::TypeFlag>, QMetaObject const*) ()
from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#2 0x00007fff9536f7b7 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#3 0x00007ffff7dea13a in call_init (l=<optimized out>, argc=argc@entry=1, argv=argv@entry=0x7fffffffd918, env=env@entry=0x7fffffffd928) at dl-init.c:78
#4 0x00007ffff7dea223 in call_init (env=<optimized out>, argv=<optimized out>, argc=<optimized out>, l=<optimized out>) at dl-init.c:36
#5 _dl_init (main_map=main_map@entry=0x1cfe870, argc=1, argv=0x7fffffffd918, env=0x7fffffffd928) at dl-init.c:126
#6 0x00007ffff7deec70 in dl_open_worker (a=a@entry=0x7fffffffbab8) at dl-open.c:577
#7 0x00007ffff7de9ff4 in _dl_catch_error (objname=objname@entry=0x7fffffffbaa8, errstring=errstring@entry=0x7fffffffbab0, mallocedp=mallocedp@entry=0x7fffffffbaa0, operate=operate@entry=0x7ffff7dee9a0 <dl_open_worker>, args=args@entry=0x7fffffffbab8) at dl-error.c:187
#8 0x00007ffff7dee3bb in _dl_open (file=0x1e25a68 "/opt/ros/indigo/lib//libcompressed_depth_image_transport.so", mode=-2147483391, caller_dlopen=<optimized out>, nsid=-2, argc=1, argv=0x7fffffffd918, env=0x7fffffffd928) at dl-open.c:661
#9 0x00007fffedf7302b in dlopen_doit (a=a@entry=0x7fffffffbcd0) at dlopen.c:66
#10 0x00007ffff7de9ff4 in _dl_catch_error (objname=0x66b630, errstring=0x66b638, mallocedp=0x66b628, operate=0x7fffedf72fd0 <dlopen_doit>, args=0x7fffffffbcd0) at dl-error.c:187
#11 0x00007fffedf7362d in _dlerror_run (operate=operate@entry=0x7fffedf72fd0 <dlopen_doit>, args=args@entry=0x7fffffffbcd0) at dlerror.c:163
#12 0x00007fffedf730c1 in __dlopen (file=<optimized out>, mode=<optimized out>) at dlopen.c:87
#13 0x00007fffeffcdc33 in Poco::SharedLibraryImpl::loadImpl(std::string const&) () from /usr/lib/libPocoFoundation.so.9
#14 0x00007fffeffce14f in Poco::SharedLibrary::SharedLibrary(std::string const&) () from /usr/lib/libPocoFoundation.so.9
#15 0x00007ffff52c2c33 in class_loader::class_loader_private::loadLibrary(std::string const&, class_loader::ClassLoader*) () from /opt/ros/indigo/lib/libclass_loader.so
#16 0x00007ffff52bc4a4 in class_loader::ClassLoader::loadLibrary() () from /opt/ros/indigo/lib/libclass_loader.so
#17 0x00007ffff52bca68 in class_loader::ClassLoader::ClassLoader(std::string const&, bool) () from /opt/ros/indigo/lib/libclass_loader.so
#18 0x00007ffff52c6628 in class_loader::MultiLibraryClassLoader::loadLibrary(std::string const&) () from /opt/ros/indigo/lib/libclass_loader.so
#19 0x00007ffff7ab23ac in pluginlib::ClassLoader<image_transport::SubscriberPlugin>::loadLibraryForClass(std::string const&) () from /opt/ros/indigo/lib/librviz.so
#20 0x00007ffff7ab90ac in pluginlib::ClassLoader<image_transport::SubscriberPlugin>::createInstance(std::string const&) () from /opt/ros/indigo/lib/librviz.so
#21 0x00007ffff7aacd28 in rviz::ImageDisplayBase::scanForTransportSubscriberPlugins() () from /opt/ros/indigo/lib/librviz.so
#22 0x00007fffb0758cb1 in rviz::ImageDisplay::onInitialize() () from /opt/ros/indigo/lib/libdefault_plugin.so
#23 0x00007ffff7a837df in rviz::Display::initialize(rviz::DisplayContext*) () from /opt/ros/indigo/lib/librviz.so
#24 0x00007ffff7b379e5 in rviz::VisualizationManager::addDisplay(rviz::Display*, bool) () from /opt/ros/indigo/lib/librviz.so
#25 0x00007ffff7b37e36 in rviz::VisualizationManager::createDisplay(QString const&, QString const&, bool) () from /opt/ros/indigo/lib/librviz.so
#26 0x00007ffff7a96df4 in rviz::DisplaysPanel::onNewDisplay() () from /opt/ros/indigo/lib/librviz.so
#27 0x00007ffff2ec387a in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#28 0x00007ffff75160d2 in QAbstractButton::clicked(bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#29 0x00007ffff72799d3 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#30 0x00007ffff727ab43 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#31 0x00007ffff727ac2c in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#32 0x00007ffff6f1750a in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#33 0x00007ffff6ec7e2c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#34 0x00007ffff6ece5dd in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#35 0x00007ffff2eaf4dd in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#36 0x00007ffff6ecdd93 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#37 0x00007ffff6f429cb in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#38 0x00007ffff6f42269 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#39 0x00007ffff6f69b02 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#40 0x00007ffff1822e04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#41 0x00007ffff1823048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#42 0x00007ffff18230ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#43 0x00007ffff2edc7a1 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#44 0x00007ffff6f69bb6 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#45 0x00007ffff2eae0af in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#46 0x00007ffff2eae3a5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#47 0x00007ffff2eb3b79 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#48 0x0000000000400bc7 in main ()
(gdb)
It looks like rviz is using Qt4 and trying to load some plugin which is linked against Qt5.
ldd /opt/ros/indigo/lib//libcompressed_depth_image_transport.so | grep Qt
libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007f837e31b000)
libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007f837dcce000)
libQt5Widgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007f837d4a4000)
libQt5Test.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Test.so.5 (0x00007f837d27b000)
libQt5OpenGL.so.5 => /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5 (0x00007f837d017000)
And rviz:
ldd /opt/ros/indigo/bin/rviz | grep Qt
libQtGui.so.4 => /usr/lib/x86_64-linux-gnu/libQtGui.so.4 (0x00007f72adc78000)
libQtCore.so.4 => /usr/lib/x86_64-linux-gnu/libQtCore.so.4 (0x00007f72a9ca4000)
Qt4 and Qt5 are not allowed to be loaded in the same process, as far as I know. I did install the official ros package (ros-indigo-desktop-full).
Any help would be much appreciated.
@whoenig I believe this is an entirely different issue.
But, on my machine (Trusty 64-bit) I don't have link entries for /opt/ros/indigo/lib/libcompressed_depth_image_transport.so
:
$ ldd /opt/ros/indigo/lib//libcompressed_depth_image_transport.so | grep Qt
But rviz
does:
$ ldd /opt/ros/indigo/bin/rviz | grep Qt
libQtGui.so.4 => /usr/lib/x86_64-linux-gnu/libQtGui.so.4 (0x00007f114fa0f000)
libQtCore.so.4 => /usr/lib/x86_64-linux-gnu/libQtCore.so.4 (0x00007f114ec48000)
I have the same problem: as soon as I open a camera or image display in rviz, it segfaults (Ubuntu 14.04). I tried pulling the latest version from github, same problem. I also see a mixup of Qt 4 and 5 when running the gdb stack trace.
I am facing the same problem with rviz (ROS Inidgo) on x64 Ubuntu 14.04. I too observed the Qt4 , Qt5 mixup in the gdb backtrace.
Perhaps having Qt5 installed is enough to have it link against the wrong library at runtime, can any of you try uninstalling Qt5 and running it again? I don't have my Trusty machine handy.
You can't uninstall Qt5 on Ubuntu 14.04, a lot of things depend on it, including unity and bits of ros:
The following packages will be REMOVED:
[...]
ros-indigo-desktop-full ros-indigo-gazebo-plugins ros-indigo-gazebo-ros
ros-indigo-gazebo-ros-pkgs ros-indigo-geometry-tutorials
ros-indigo-librviz-tutorial ros-indigo-pcl-conversions ros-indigo-pcl-ros
ros-indigo-perception ros-indigo-perception-pcl ros-indigo-python-qt-binding
ros-indigo-qt-dotgraph ros-indigo-qt-gui ros-indigo-qt-gui-cpp
ros-indigo-qt-gui-py-common ros-indigo-robot ros-indigo-ros-base
ros-indigo-ros-core ros-indigo-ros-tutorials ros-indigo-rqt-action
ros-indigo-rqt-bag ros-indigo-rqt-bag-plugins ros-indigo-rqt-common-plugins
ros-indigo-rqt-console ros-indigo-rqt-dep ros-indigo-rqt-graph
ros-indigo-rqt-gui ros-indigo-rqt-gui-cpp ros-indigo-rqt-gui-py
ros-indigo-rqt-image-view ros-indigo-rqt-launch ros-indigo-rqt-logger-level
ros-indigo-rqt-moveit ros-indigo-rqt-msg ros-indigo-rqt-nav-view
ros-indigo-rqt-plot ros-indigo-rqt-pose-view ros-indigo-rqt-publisher
ros-indigo-rqt-py-common ros-indigo-rqt-py-console
ros-indigo-rqt-reconfigure ros-indigo-rqt-robot-dashboard
ros-indigo-rqt-robot-monitor ros-indigo-rqt-robot-plugins
ros-indigo-rqt-robot-steering ros-indigo-rqt-runtime-monitor
ros-indigo-rqt-rviz ros-indigo-rqt-service-caller ros-indigo-rqt-shell
ros-indigo-rqt-srv ros-indigo-rqt-tf-tree ros-indigo-rqt-top
ros-indigo-rqt-topic ros-indigo-rqt-web ros-indigo-rviz
ros-indigo-rviz-plugin-tutorials ros-indigo-rviz-python-tutorial
ros-indigo-simulators ros-indigo-turtle-actionlib ros-indigo-turtle-tf
ros-indigo-turtlesim ros-indigo-visualization-tutorials ros-indigo-viz
[...]
@lorenzoriano that must be some indirect dependency, as far as I know the rqt packages shouldn't directly depend on qt5. I'd have to dig into the dependency structure, but I don't have a trusty machine handy. I'll look into it after the holidays.
@lorenzoriano exactly which package did you try to uninstall to get that message?
Everything with qt5, something like sudo apt-get uninstall libqt5* (don't have a linux box with me know, can't check the exact command)
I have solved the problem(at least on my machine). I am running Ubuntu 14.04 and ROS Indigo on a x64 machine. In my case, I had built Qt5.3.2 from source and OpenCV 2.4.9 from source with Qt support on AND the OpenCV libraries were built against Qt5. Here is what I did:
sudo apt-get install qt4-default
. Then checked qmake -v
to make sure it used the Qt4 binaries that come with trusty.Then I tried adding views for camera, depthmap and pointcloud2 (with kinect) it all worked fine! No segfaults.
ldd /opt/ros/indigo/lib//libcompressed_depth_image_transport.so | grep Qt
did not have any result and ldd /opt/ros/indigo/bin/rviz | grep Qt
gave
libQtGui.so.4 => /usr/lib/x86_64-linux-gnu/libQtGui.so.4 (0x00007f649cc04000) libQtCore.so.4 => /usr/lib/x86_64-linux-gnu/libQtCore.so.4 (0x00007f6498b4a000)
I am not totally sure if rviz uses OpenCV libraries for the Camera interface. It could be possible to solve this problem by just uninstalling Qt5 (and building ROS again if it was built from source) as @wjwwood suggested. Hope this helps.
Thanks @praveenofpersia, it works! The only difference is that I had to disable Qt support in OpenCV. I saw no option in ccmake to selectively enable QT4 rather than QT5, and cmake kept choosing QT5 by default (even after installing qt4-default).
Maybe this issue can be closed? I still see no solution for other users here, and I don't know what to blame (OpenCV? RViz? Qt?). This is an annoying and hard to find bug, and there should be at least a warning when multiple versions of Qt are being mixed.
@lorenzoriano it is also not clear to me which project is to blame, but since disabling Qt support in OpenCV seems to address the issue, I would guess it might be that OpenCV is pullingin Qt5 incorrectly in this case. @vrabaud do you have any insight on this? Maybe it would be possible to roll an opencv-qt4
kind of deb and have ROS depend on that? I'm not sure what the correct solution is.
@lorenzoriano : Glad that you got your problem solved. But It's strange why/how Cmake picks up Qt5's qmake when qt4-default is installed. @wjwwood : I don't think OpenCV pulls Qt5 incorrectly. It depends on the configuration of the system. Just to make sure, I built OpenCV a couple of times today on trusty systems with both Qt4 and Qt5 installed. So, I can confirm that OpenCV can be built against qt4 libraries alone even if Qt5 is installed. I can also confirm the observation that the rviz issue #696 gets solved if OpenCV is not built against Qt5. I am not sure about the dependency of rviz on OpenCV still.
For anybody who are facing the same issue and are unable to solve it using the information above, the following pointers might help:
After installing qt4-default
and making sure qmake -v
points to qt4 binaries, cmake
should be finding qt4's binaries as it uses qmake -query PROPERTY
to get the version and binary location. If not you can set QT_QMAKE_EXECUTABLE
to the directory containing qmake before running cmake
. Or if you use cmake-gui
, after the first configure, you can select the qt4 qmake directory as the value corresponding to the name QT_QMAKE_EXECUTABLE. Cmake will also list out variables like Qt5Core_DIR, Qt5Gui_DIR etc which you can unset or leave it blank.
To make sure Qt4 is being used for the GUI, you can do cmake -DWITH_QT=4 ../
(Assuming the OpenCV src is at ../) and then look at the output for something like:
-- GUI:
-- QT 4.x: YES (ver 4.8.6 EDITION= OpenSource)
-- QT OpenGL support: YES (/usr/lib/x86_64-linux-gnu/libQtOpenGL.so)
If none of the above works, you can try using a different Cmake version (2.x like 2.8). Hope this helps.
I found that some problems with libPythonQt.so could be causing the issues, so try and sourcing the original file, rather than any other you might have.
When I attempt to add an Image, Camera or DepthCloud as a display type, rviz core dumps immediately.
Steps to Recreate
32 bit Ubuntu 12.04 LTS ROS Groovy
RVIZ opens Click Add to add a new Display Type. Select Camera and click OK Results in the following output
Same happens if I select Image or DepthCloud as well.
Here is the output from the debugger:
I did upgrade
ros-groovy-class-loader
and it still core dumps.Any help would be much appreciated.