[Rock-dev] Logger SEGV

Christoph Mueller christoph.mueller at dfki.de
Tue Nov 20 16:13:24 CET 2012


Hio,

we have found a new a problem starting a deployment via a bundle with its
default_logger on our gumstix systems.

1) When we start an orogen task from the given deployment:

deployment "task" do
   task("taskA", "module::Task")
   add_default_logger
end

A segmentation fault  always occurs in the default_logger / deployment.

2) It runs without a problem, when we remove the default_logger (just
uncommenting add_default_logger).
Tested 10 times in a row for checking threading problems.


Are there currently some open issues known for the RTT Logger? We have a naive
assumption there is a clash between the logger and our specific task thread, but
we are currently puzzling. (Backtrace is appended in the attachment)


We also use some older commits in the master branch for several packages which
are listed at the end of this mail.
I would test it on the latest state in master. But i currently only prefer to
update these system, if its only absolutely necessary.


Orocos.rb:

commit 4601882c041ccc20775b6d0fac681a3913428962
Author: Alexander Duda <Alexander at Duda.dfki.de>
Date:   Mon Nov 12 15:42:54 2012 +0100

    fix issue related to Nameservice.enable

    old API was broken for setting corba name service ip.
    Nameservice.enable(:CORBA,:host => "...")

    New API is Orocos::CORBA.name_service.ip = ""

Orogen:

commit 6df439d52a7386dc736db2f2e5ef9126834c3493
Merge: 24898b6 4e38604
Author: Sylvain Joyeux <sylvain.joyeux at dfki.de>
Date:   Thu Nov 15 15:05:04 2012 +0100

    Merge remote-tracking branch 'autobuild/master'

    Conflicts:
        lib/orogen/templates/typekit/mqueue/CMakeLists.txt

Typelib:

commit 06f223f2b5a1dd68961c78532c5e6f94edb6af2d
Author: Sylvain Joyeux <sylvain.joyeux at dfki.de>
Date:   Wed Nov 14 18:11:29 2012 +0100

    ruby: in export_to_ruby, make sure that we save the current export state on
error

    Otherwise, clear_exports will fail afterwards

roby:

commit 6636cd99a27410a66a9f66a6416a9f82b063f6d9
Author: Sylvain Joyeux <sylvain.joyeux at dfki.de>
Date:   Tue Oct 30 15:10:13 2012 +0100

    core: fix toplevel exception handlers in Plan

    The handlers were expecting Exception#trace to be a list of tasks, but
    it can contain arrays as well (it is a kind of graph-level thingy).

    Add each_involved_task that flattens the trace and use it in the handlers
-------------- nächster Teil --------------
Thread 12 (Thread 2700):
#0  0x400d9428 in sem_post@@GLIBC_2.4 () from /lib/libpthread.so.0
#1  0x409aa5c0 in RTT::os::Thread::start() () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#2  0x4099e94c in RTT::Activity::trigger() () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#3  0x40960954 in RTT::TaskContext::dataOnPort(RTT::base::PortInterface*) () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#4  0x40951738 in RTT::DataFlowInterface::dataOnPort(RTT::base::PortInterface*) () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#5  0x409b39a0 in RTT::base::InputPortInterface::signal() () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6

#6  0x42874d58 in RTT::internal::ConnOutputEndpoint<std::vector<root::PortStats, std::allocator<root::PortStats> > >::signal (this=0xc1880) at /opt/software/install/include/rtt/types/../internal/ConnOutputEndPoint.hpp:123
#7  0x409b32d8 in RTT::base::ChannelElementBase::signal() () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#8  0x4286ded8 in RTT::internal::ChannelBufferElement<std::vector<root::PortStats, std::allocator<root::PortStats> > >::write (this=0xc2248, sample=...) at /opt/software/install/include/rtt/types/../internal/ChannelBufferElement.hpp:75
#9  0x42662390 in RTT::base::ChannelElement<std::vector<root::PortStats, std::allocator<root::PortStats> > >::write (this=0xc2288, sample=...) at /opt/software/install/include/rtt/transports/corba/../../internal/../types/../internal/../base/ChannelElement.hpp:99
#10 0x42829ccc in RTT::OutputPort<std::vector<root::PortStats, std::allocator<root::PortStats> > >::do_write (this=0xbe8669a0, sample=..., descriptor=...) at /opt/software/install/include/rtt/types/../OutputPort.hpp:78
#11 0x42845f48 in boost::_mfi::mf2<bool, RTT::OutputPort<std::vector<root::PortStats, std::allocator<root::PortStats> > >, std::vector<root::PortStats, std::allocator<root::PortStats> > const&, boost::tuples::tuple<boost::shared_ptr<RTT::internal::ConnID>, boost::intrusive_ptr<RTT::base::ChannelElementBase>, RTT::ConnPolicy, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> const&>::operator() (this=0x46af6bfc, p=0xbe8669a0, a1=..., a2=...) at /usr/include/boost/bind/mem_fn_template.hpp:280
#12 0x42841ec4 in boost::_bi::list3<boost::_bi::value<RTT::OutputPort<std::vector<root::PortStats, std::allocator<root::PortStats> > >*>, boost::reference_wrapper<std::vector<root::PortStats, std::allocator<root::PortStats> > const>, boost::arg<1> >::operator()<bool, boost::_mfi::mf2<bool, RTT::OutputPort<std::vector<root::PortStats, std::allocator<root::PortStats> > >, std::vector<root::PortStats, std::allocator<root::PortStats> > const&, boost::tuples::tuple<boost::shared_ptr<RTT::internal::ConnID>, boost::intrusive_ptr<RTT::base::ChannelElementBase>, RTT::ConnPolicy, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> const&>, boost::_bi::list1<boost::tuples::tuple<boost::shared_ptr<RTT::internal::ConnID>, boost::intrusive_ptr<RTT::base::ChannelElementBase>, RTT::ConnPolicy, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>&> > (this=0x46af6c04, f=..., a=...) at /usr/include/boost/bind/bind.hpp:382
#13 0x4283d744 in boost::_bi::bind_t<bool, boost::_mfi::mf2<bool, RTT::OutputPort<std::vector<root::PortStats, std::allocator<root::PortStats> > >, std::vector<root::PortStats, std::allocator<root::PortStats> > const&, boost::tuples::tuple<boost::shared_ptr<RTT::internal::ConnID>, boost::intrusive_ptr<RTT::base::ChannelElementBase>, RTT::ConnPolicy, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> const&>, boost::_bi::list3<boost::_bi::value<RTT::OutputPort<std::vector<root::PortStats, std::allocator<root::PortStats> > >*>, boost::reference_wrapper<std::vector<root::PortStats, std::allocator<root::PortStats> > const>, boost::arg<1> > >::operator()<boost::tuples::tuple<boost::shared_ptr<RTT::internal::ConnID>, boost::intrusive_ptr<RTT::base::ChannelElementBase>, RTT::ConnPolicy, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > (this=0x46af6bfc, a1=...) at /usr/include/boost/bind/bind_template.hpp:32
#14 0x4283753c in RTT::internal::ConnectionManager::delete_if<boost::_bi::bind_t<bool, boost::_mfi::mf2<bool, RTT::OutputPort<std::vector<root::PortStats, std::allocator<root::PortStats> > >, std::vector<root::PortStats, std::allocator<root::PortStats> > const&, boost::tuples::tuple<boost::shared_ptr<RTT::internal::ConnID>, boost::intrusive_ptr<RTT::base::ChannelElementBase>, RTT::ConnPolicy, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> const&>, boost::_bi::list3<boost::_bi::value<RTT::OutputPort<std::vector<root::PortStats, std::allocator<root::PortStats> > >*>, boost::reference_wrapper<std::vector<root::PortStats, std::allocator<root::PortStats> > const>, boost::arg<1> > > > (this=0x0, pred=...) at /opt/software/install/include/rtt/types/../internal/../base/../internal/ConnectionManager.hpp:125
#15 0x4282aa88 in RTT::OutputPort<std::vector<root::PortStats, std::allocator<root::PortStats> > >::write (this=0xbe8669a0, sample=...) at /opt/software/install/include/rtt/types/../OutputPort.hpp:255
#16 0x424ea5b0 in root::Module::updateHook (this=0xbe8668a4) at /opt/software/communication/orogen/root/tasks/Module.cpp:167
#17 0x4099a224 in RTT::ExecutionEngine::processChildren() () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#18 0x409b5dfc in RTT::base::RunnableInterface::loop() () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#19 0x4099e798 in RTT::Activity::loop() () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#20 0x409aa858 in RTT::os::thread_function(void*) () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#21 0x409b09d0 in RTT::os::rtos_posix_thread_wrapper(void*) () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#22 0x400d0910 in start_thread () from /lib/libpthread.so.0
#23 0x42e8c3dc in clone () from /lib/libc.so.6
#24 0x42e8c3dc in clone () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 11 (Thread 2712):
#0  0x400da6b4 in recv () from /lib/libpthread.so.0
#1  0x400da6a4 in recv () from /lib/libpthread.so.0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 10 (Thread 2697):
#0  0x42e7e708 in poll () from /lib/libc.so.6
#1  0x42bdfe98 in omni::SocketCollection::Select() () from /usr/lib/libomniORB4.so.1
#2  0x42c0415c in omni::tcpEndpoint::AcceptAndMonitor(void (*)(void*, omni::giopConnection*), void*) () from /usr/lib/libomniORB4.so.1
#3  0x42bc4e04 in omni::giopRendezvouser::execute() () from /usr/lib/libomniORB4.so.1
#4  0x42b6ccfc in omniAsyncWorker::real_run() () from /usr/lib/libomniORB4.so.1
#5  0x42b6cfb4 in omniAsyncWorker::run(void*) () from /usr/lib/libomniORB4.so.1
#6  0x400ff8c8 in omni_thread_wrapper () from /usr/lib/libomnithread.so.3
#7  0x400d0910 in start_thread () from /lib/libpthread.so.0
#8  0x42e8c3dc in clone () from /lib/libc.so.6
#9  0x42e8c3dc in clone () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 9 (Thread 2703):
#0  0x400d8fc4 in sem_wait@@GLIBC_2.4 () from /lib/libpthread.so.0
#1  0x409aa7f8 in RTT::os::thread_function(void*) () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#2  0x409b09d0 in RTT::os::rtos_posix_thread_wrapper(void*) () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#3  0x400d0910 in start_thread () from /lib/libpthread.so.0
#4  0x42e8c3dc in clone () from /lib/libc.so.6
#5  0x42e8c3dc in clone () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 8 (Thread 2701):
#0  0x400d6d3c in pthread_cond_timedwait@@GLIBC_2.4 () from /lib/libpthread.so.0
#1  0x400ffc64 in omni_condition::timedwait(unsigned long, unsigned long) () from /usr/lib/libomnithread.so.3
#2  0x42bbb63c in omni::Scavenger::execute() () from /usr/lib/libomniORB4.so.1
#3  0x42b6ccfc in omniAsyncWorker::real_run() () from /usr/lib/libomniORB4.so.1
#4  0x42b6cfb4 in omniAsyncWorker::run(void*) () from /usr/lib/libomniORB4.so.1
#5  0x400ff8c8 in omni_thread_wrapper () from /usr/lib/libomnithread.so.3
#6  0x400d0910 in start_thread () from /lib/libpthread.so.0
#7  0x42e8c3dc in clone () from /lib/libc.so.6
#8  0x42e8c3dc in clone () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 7 (Thread 2699):
#0  0x400d8fc4 in sem_wait@@GLIBC_2.4 () from /lib/libpthread.so.0
#1  0x409aa7f8 in RTT::os::thread_function(void*) () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#2  0x409b09d0 in RTT::os::rtos_posix_thread_wrapper(void*) () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#3  0x400d0910 in start_thread () from /lib/libpthread.so.0
#4  0x42e8c3dc in clone () from /lib/libc.so.6
#5  0x42e8c3dc in clone () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 6 (Thread 2692):
---Type <return> to continue, or q <return> to quit---
#0  0x400da294 in read () from /lib/libpthread.so.0
#1  0x400da284 in read () from /lib/libpthread.so.0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 5 (Thread 2709):
#0  0x42e7e708 in poll () from /lib/libc.so.6
#1  0x4005d1d4 in ?? () from /usr/lib/libavahi-common.so.3
#2  0x4005d1d4 in ?? () from /usr/lib/libavahi-common.so.3
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 4 (Thread 2707):
#0  0x400d8fc4 in sem_wait@@GLIBC_2.4 () from /lib/libpthread.so.0
#1  0x409aa7f8 in RTT::os::thread_function(void*) () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#2  0x409b09d0 in RTT::os::rtos_posix_thread_wrapper(void*) () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#3  0x400d0910 in start_thread () from /lib/libpthread.so.0
#4  0x42e8c3dc in clone () from /lib/libc.so.6
#5  0x42e8c3dc in clone () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 3 (Thread 2706):
#0  0x400da6b4 in recv () from /lib/libpthread.so.0
#1  0x400da6a4 in recv () from /lib/libpthread.so.0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 2 (Thread 2708):
#0  0x400d66dc in pthread_cond_wait@@GLIBC_2.4 () from /lib/libpthread.so.0
#1  0x400ffcc8 in omni_condition::wait() () from /usr/lib/libomnithread.so.3
#2  0x42b52a6c in omniOrbORB::run() () from /usr/lib/libomniORB4.so.1
#3  0x42a25804 in RTT::corba::TaskContextServer::RunOrb() () from /opt/software/install/lib/liborocos-rtt-corba-gnulinux.so.2.6
#4  0x42a2b250 in RTT::corba::OrbRunner::loop() () from /opt/software/install/lib/liborocos-rtt-corba-gnulinux.so.2.6
#5  0x409aa858 in RTT::os::thread_function(void*) () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#6  0x409b09d0 in RTT::os::rtos_posix_thread_wrapper(void*) () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#7  0x400d0910 in start_thread () from /lib/libpthread.so.0
#8  0x42e8c3dc in clone () from /lib/libc.so.6
#9  0x42e8c3dc in clone () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (Thread 2705):
#0  0x4480ccd8 in String::getElementCount(void const*) const () from /opt/software/install/lib/typelib/libtypeLang_cSupport.so
#1  0x42268d84 in Typelib::ValueOps::dump(unsigned char const*, unsigned int, Typelib::OutputStream&, __gnu_cxx::__normal_iterator<unsigned int const*, std::vector<unsigned int, std::allocator<unsigned int> > >, __gnu_cxx::__normal_iterator<unsigned int const*, std::vector<unsigned int, std::allocator<unsigned int> > >) () from /opt/software/install/lib/libtypeLib.so.1
#2  0x4480ce68 in Vector::dump(void const*, unsigned int, Typelib::OutputStream&, __gnu_cxx::__normal_iterator<unsigned int const*, std::vector<unsigned int, std::allocator<unsigned int> > >, __gnu_cxx::__normal_iterator<unsigned int const*, std::vector<unsigned int, std::allocator<unsigned int> > >) const ()
   from /opt/software/install/lib/typelib/libtypeLang_cSupport.so
#3  0x42268de8 in Typelib::ValueOps::dump(unsigned char const*, unsigned int, Typelib::OutputStream&, __gnu_cxx::__normal_iterator<unsigned int const*, std::vector<unsigned int, std::allocator<unsigned int> > >, __gnu_cxx::__normal_iterator<unsigned int const*, std::vector<unsigned int, std::allocator<unsigned int> > >) () from /opt/software/install/lib/libtypeLib.so.1
#4  0x42269120 in Typelib::getDumpSize(unsigned char const*, std::vector<unsigned int, std::allocator<unsigned int> > const&) () from /opt/software/install/lib/libtypeLib.so.1
#5  0x433550f8 in orogen_transports::TypelibMarshallerBase::getMarshallingSize (this=0x845a0, handle=0xafae8) at /opt/software/tools/rtt_typelib/TypelibMarshallerBase.cpp:45
#6  0x4201ce94 in logger::Logger::updateHook() () from /opt/software/install/lib/orocos/liblogger-tasks-gnulinux.so
#7  0x4099a224 in RTT::ExecutionEngine::processChildren() () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#8  0x409b5dfc in RTT::base::RunnableInterface::loop() () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#9  0x4099e798 in RTT::Activity::loop() () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#10 0x409aa858 in RTT::os::thread_function(void*) () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#11 0x409b09d0 in RTT::os::rtos_posix_thread_wrapper(void*) () from /opt/software/install/lib/liborocos-rtt-gnulinux.so.2.6
#12 0x400d0910 in start_thread () from /lib/libpthread.so.0
#13 0x42e8c3dc in clone () from /lib/libc.so.6
#14 0x42e8c3dc in clone () from /lib/libc.so.6


More information about the Rock-dev mailing list