Running a nodelet manager under gdb, I get the below output and backtrace. This happens after several minutes of otherwise-fine operation. I haven't had a chance to see how repeatable it is but would like to know if the gdb output raises any flags for anyone.
This is on an amd64 system, Maverick, diamondback debs.
Thanks,
Pat
---
nodelet: /usr/include/boost/thread/pthread/mutex.hpp:50: void boost::mutex::lock(): Assertion `!pthread_mutex_lock(&m)' failed.
nodelet: /usr/include/boost/thread/pthread/mutex.hpp:50: void boost::mutex::lock(): Assertion `!pthread_mutex_lock(&m)' failed.
nodelet: /usr/include/boost/thread/pthread/mutex.hpp:50: void boost::mutex::lock(): Assertion `!pthread_mutex_lock(&m)' failed.
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe6ffd700 (LWP 898)]
0x00007ffff4e21a47 in std::_Rb_tree_decrement(std::_Rb_tree_node_base*) () from /usr/lib/libstdc++.so.6
(gdb) bt
#0 0x00007ffff4e21a47 in std::_Rb_tree_decrement(std::_Rb_tree_node_base*) ()
from /usr/lib/libstdc++.so.6
#1 0x00007ffff676aad7 in boost::detail::add_new_tss_node(void const*, boost::shared_ptr<boost::detail::tss_cleanup_function>, void*) ()
from /usr/lib/libboost_thread.so.1.42.0
#2 0x00007ffff676ae7d in boost::detail::set_tss_data(void const*, boost::shared_ptr<boost::detail::tss_cleanup_function>, void*, bool) ()
from /usr/lib/libboost_thread.so.1.42.0
#3 0x00007ffff72d8398 in reset (this=<value optimized out>)
at /usr/include/boost/thread/tss.hpp:103
#4 ros::CallbackQueue::setupTLS (this=<value optimized out>)
at /tmp/buildd/ros-diamondback-ros-comm-1.4.5/debian/ros-diamondback-ros-comm/opt/ros/diamondback/stacks/ros_comm/clients/cpp/roscpp/src/libros/callback_queue.cpp:93
#5 0x00007ffff72d9f5c in ros::CallbackQueue::callOne (this=0x676af0, timeout=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
)
at /tmp/buildd/ros-diamondback-ros-comm-1.4.5/debian/ros-diamondback-ros-comm/opt/ros/diamondback/stacks/ros_comm/clients/cpp/roscpp/src/libros/callback_queue.cpp:214
#6 0x00007ffff570c7bf in callOne (this=<value optimized out>)
at /opt/ros/diamondback/stacks/ros_comm/clients/cpp/roscpp/include/ros/callback_queue.h:79
#7 nodelet::detail::CallbackQueue::callOne (this=<value optimized out>)
at /tmp/buildd/ros-diamondback-common-1.4.3/debian/ros-diamondback-common/op---Type <return> to continue, or q <return> to quit---
t/ros/diamondback/stacks/common/nodelet/src/callback_queue.cpp:66
#8 0x00007ffff570d7f7 in nodelet::detail::CallbackQueueManager::workerThread (
this=0x648e80, info=0x63df08)
at /tmp/buildd/ros-diamondback-common-1.4.3/debian/ros-diamondback-common/opt/ros/diamondback/stacks/common/nodelet/src/callback_queue_manager.cpp:246
#9 0x00007ffff676a230 in thread_proxy ()
from /usr/lib/libboost_thread.so.1.42.0
#10 0x00007ffff4706971 in start_thread (arg=<value optimized out>)
at pthread_create.c:304
#11 0x00007ffff446292d in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()
(gdb)