Ask Your Question
1

moveit setup assistant segfault on jessie

asked 2016-12-07 16:04:14 -0600

zeroos gravatar image

updated 2016-12-17 09:02:12 -0600

Hey guys,

I have recently tried to install and run moveit on my setup. I have a fresh ros install on updated Debian Jessie in chroot. I have installed ROS kinetic from packages and Moveit! from sources as per instructions here: http://moveit.ros.org/install/source/ . When i try to run moveit_setup_assistant it segfaults:

# rosrun moveit_setup_assistant moveit_setup_assistant
Segmentation fault (core dumped)

GDB:

Reading symbols from
/root/ws_moveit/devel/lib/moveit_setup_assistant/moveit_setup_assistant...(no
    debugging symbols found)...done.
Starting program:
/root/ws_moveit/devel/lib/moveit_setup_assistant/moveit_setup_assistant
__name:=moveit_setup_assistant
__log:=/root/.ros/log/f3dc741a-bcc4-11e6-9836-a44e31cd9234/moveit_setup_assistant-1.log
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]

Program received signal SIGSEGV, Segmentation fault.
0x00007fffcb12fdbc in ?? () from /usr/lib/x86_64-linux-gnu/libQtTest.so.4
(gdb) where
#0  0x00007fffcb12fdbc in ?? () from /usr/lib/x86_64-linux-gnu/libQtTest.so.4
#1  0x00007ffff7dea9ba in call_init (l=<optimized out>, argc=argc@entry=3,
        argv=argv@entry=0x7fffffffdb98, env=env@entry=0x7fffffffdbb8) at
dl-init.c:78
#2  0x00007ffff7deaaa3 in call_init (env=0x7fffffffdbb8, argv=0x7fffffffdb98,
        argc=3, l=<optimized out>) at dl-init.c:36
#3  _dl_init (main_map=0x7ffff7ffe1a8, argc=3, argv=0x7fffffffdb98,
        env=0x7fffffffdbb8) at dl-init.c:126
#4  0x00007ffff7ddd1ca in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#5  0x0000000000000003 in ?? ()
#6  0x00007fffffffde2f in ?? ()
#7  0x00007fffffffde77 in ?? ()
#8  0x00007fffffffde96 in ?? ()
#9  0x0000000000000000 in ?? ()
(gdb)

I have found somewhere that someone with similar problem, but with rviz, had his rviz binary linked against Qt4 and managed to fix it somehow. It seems that it might also be a case here:

# ldd ./devel/.private/moveit_setup_assistant/lib/moveit_setup_assistant/moveit_setup_assistant | grep Qt
libQt5Widgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007f35ffc4d000)
libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007f35f0675000)
libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007f35eff38000)
libQtGui.so.4 => /usr/lib/x86_64-linux-gnu/libQtGui.so.4 (0x00007f35d3ee2000)
libQtTest.so.4 => /usr/lib/x86_64-linux-gnu/libQtTest.so.4 (0x00007f35d3cbb000)
libQtCore.so.4 => /usr/lib/x86_64-linux-gnu/libQtCore.so.4 (0x00007f35d37cc000)

Do you guys have any ideas how I can proceed with this information?

UPDATE

Unfortunately I have not been able to really solve the problem. I guess I am not a linux-ninja enough to get this done. For me it seems like most packages in moveit are not linked properly and I was not able to locate one that initiates this dependency.

In the meantime moveit was released as a binary package. I decided to try it out, but it seems also not to be working:

# ldd /opt/ros/kinetic/lib/moveit_setup_assistant/moveit_setup_assistant  | grep Qt
libQt5Widgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007f9ba31f8000)
libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007f9b93d29000)
libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/

I ended up installing Xenial in the chroot. Jessie was also a chrooted system, so this is not such a big change for me. moveit_setup_assitant from the binary package ... (more)

edit retag flag offensive close merge delete

Comments

Maybe it is not a MoveIt! bug. It seems ros-kinetic-opencv3 in Jessie is compiled with Qt4 and MoveIt! depends on this library.

disRecord gravatar imagedisRecord ( 2016-12-18 04:33:28 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2016-12-08 03:07:32 -0600

v4hn gravatar image

That ldd output does not look good. To the best of my knowledge binaries should never link against both Qt4 and Qt5. Most likely some dependency of the setup assistant links against one of them and the setup assistant against the other. There is some logic in place in the CMakeLists.txt of the setup assistant that should make the setup assistant use the version of qt that rviz uses.

The question is which one do you want and which package violates your decision. You could work your way with ldd through the libraries the setup assistant binary links and/or look at the cmake output during the build of your workspace to see if something picks up the wrong one.

edit flag offensive delete link more

Comments

Thanks for this ideas! Unfortunately, I have not been able to find out the dependency that causes all this trouble. I updated the question with more details about current situation.

zeroos gravatar imagezeroos ( 2016-12-17 09:03:27 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2016-12-07 16:04:14 -0600

Seen: 299 times

Last updated: Dec 17 '16