ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

ARM : boost exception - what(): boost::lock_error [closed]

asked 2013-06-02 22:11:12 -0600

ss_robotics gravatar image

updated 2014-01-28 17:16:44 -0600

ngrennan gravatar image

Hi,

I am trying to run navigation package on a development board having an arm processor. I have ubuntu 12.04 file system installed on it.

Since I am trying to test things in parts, in my current setup I have the netbook connected to turtlebot 2 and the kinect attached on it. As shipped, it has ROS Groovy installed on it. boost version. (libboost_xxx.so.1.46.1)

The navigation package is running on the ARM processor. It has ROS Fuerte on it. boost version(libboost_xxx.so.1.49.0).

Roscore is running on the netbook and I run the minimal.launch and the 3dsensor.launch file on it.

The netbook and the arm processor are connected using WIFI. Until now, I have tried gmapping and amcl. Both of them crash multiple times at different places with the same error message from the boost library.

throwing an instance of 'boost::exception_detail::clone_impl >' what(): boost::lock_error

I have copied the gdb stack below.

Reading symbols from /root/ros/navigation/amcl/bin/amcl...(no debugging symbols found)...done.
"/root/ros/navigation/amcl/bin/amcl" is not a core dump: File format not recognized
(gdb) run
Starting program: /root/ros/navigation/amcl/bin/amcl 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabi/libthread_db.so.1".
[New Thread 0x42d04420 (LWP 3527)]
[New Thread 0x436ff420 (LWP 3528)]
[New Thread 0x43fff420 (LWP 3529)]
[New Thread 0x448ff420 (LWP 3530)]
[New Thread 0x450ff420 (LWP 3531)]
[New Thread 0x458ff420 (LWP 3532)]
[ INFO] [1370243845.085084321]: Requesting the map...
[ INFO] [1370243845.133092869]: Received a 512 X 480 map @ 0.050 m/pix

[ INFO] [1370243845.204693663]: Initializing likelihood field model; this can take some time on large maps...
[ INFO] [1370243845.281727082]: Done initializing likelihood field model.
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >'
  what():  boost::lock_error

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x42d04420 (LWP 3527)]
__libc_do_syscall () at ../ports/sysdeps/unix/sysv/linux/arm/eabi/libc-do-syscall.S:47
47      ../ports/sysdeps/unix/sysv/linux/arm/eabi/libc-do-syscall.S: No such file or directory.
(gdb) bt
- 0  __libc_do_syscall () at ../ports/sysdeps/unix/sysv/linux/arm/eabi/libc-do-syscall.S:47

- 1  0x4096fe52 in __GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:67

- 2  0x40972228 in __GI_abort () at abort.c:91

- 3  0x4081c770 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/arm-linux-gnueabi/libstdc++.so.6

- 4  0x4081a118 in ?? () from /usr/lib/arm-linux-gnueabi/libstdc++.so.6

- 5  0x4081a118 in ?? () from /usr/lib/arm-linux-gnueabi/libstdc++.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

On the netbook, sometimes I get the following message :

[ERROR] [1370229271.246944898]: a message of over a gigabyte was predicted in tcpros. that seems highly unlikely, so I'll assume protocol synchronization is lost.

I have the following question:

  • What version of Boost library is supported by ROS.
  • Could this bug occur because the netbook is running a different boost version than the development board.
  • Is there a way I could debug this problem.

Thanks, Suraj

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by ahendrix
close date 2017-04-21 12:48:16.996635

2 Answers

Sort by ยป oldest newest most voted
0

answered 2013-06-19 19:34:24 -0600

ss_robotics gravatar image

I could get rid of this error by installing boost library version : 1.46.1

Some more details: I was following the instructions from the link below to install ROS (fuerte) on a arm processor having debian distribution.

http://www.ros.org/wiki/fuerte/Installation/Debian

At the following step : $sudo apt-get libboost-all-dev

It installs version 1.49.0 which caused all the troubles.

Solution: $sudo apt-get install libboost1.46-all-dev

Note: If you have already installed ROS and some packages, you cannot just uninstall 1.49.0 and install 1.46.1. Unfortunately ros binaries were linked to 1.49.0 and it complained for missing libraries.

edit flag offensive delete link more

Comments

What do you suggest if I already have installed ROS? Reinstall ROS after boost 1.46? thanks.

eduard_d112 gravatar image eduard_d112  ( 2014-02-14 06:52:03 -0600 )edit
-1

answered 2017-04-21 05:17:22 -0600

add code

rospy.spin()

can solve question:

terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >' what(): boost: mutex lock failed in pthread_mutex_lock: Invalid argument Aborted (core dumped)

edit flag offensive delete link more

Comments

1

This is a very old question and is pretty focused on C/C++ compatibility issues with boost and ARM; how does adding a line of Python fix it, and where should that line go?

ahendrix gravatar image ahendrix  ( 2017-04-21 12:50:09 -0600 )edit

Question Tools

Stats

Asked: 2013-06-02 22:11:12 -0600

Seen: 3,466 times

Last updated: Apr 21 '17