[ros-users] rosconsole initialization problem when linked with xenomai

Mrinal Kalakrishnan mail at mrinal.net
Tue Nov 9 23:43:14 UTC 2010


I have a strange problem when linking a ROS application with Xenomai.
It appears that the constructor for some global objects of rosconsole
is waiting on a mutex (g_init_mutex). Here is the gdb backtrace when I
kill the hanging program:

#0  __lll_lock_wait ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
#1  0x00007ffff49de295 in _L_lock_949 () from /lib/libpthread.so.0
#2  0x00007ffff49de0b8 in __pthread_mutex_lock (mutex=0x7ffff6304580)
    at pthread_mutex_lock.c:61
#3  0x00007ffff60f384a in boost::mutex::lock ()
    at /usr/include/boost/thread/pthread/mutex.hpp:50
#4  boost::unique_lock<boost::mutex>::lock ()
    at /usr/include/boost/thread/locks.hpp:338
#5  unique_lock () at /usr/include/boost/thread/locks.hpp:224
#6  ros::console::initialize ()
    at /tmp/buildd/ros-cturtle-ros-1.2.4/debian/ros-cturtle-ros/opt/ros/cturtle/ros/core/rosconsole/src/rosconsole/rosconsole.cpp:426
#7  0x00007ffff60fc8d6 in __do_global_ctors_aux ()
   from /opt/ros/cturtle/ros/core/rosconsole/lib/librosconsole.so
#8  0x00007ffff60ef803 in _init ()
   from /opt/ros/cturtle/ros/core/rosconsole/lib/librosconsole.so
#9  0x00007fffffffe2d8 in ?? ()
#10 0x00007ffff7ded6e9 in call_init (l=0x7ffff7fda510, argc=-164616432,
    argv=0x7fffffffe2c8, env=0x7fffffffe2d8) at dl-init.c:70
#11 0x00007ffff7ded86f in _dl_init (main_map=0x7ffff7ffb000, argc=1,
    argv=0x7fffffffe2c8, env=0x7fffffffe2d8) at dl-init.c:134
#12 0x00007ffff7ddfb2a in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#13 0x0000000000000001 in ?? ()
#14 0x00007fffffffe524 in ?? ()
#15 0x0000000000000000 in ?? ()

The same program works fine when not linked with xenomai. This is
probably not a ROS bug, so I'm not creating a ticket, but I was
wondering if anyone has seen this before, or has any other ideas. This
problem either occurs or doesn't based on which objects I link into my
final binary.

- Mrinal

More information about the ros-users mailing list