[Rock-dev] [RTT] component dies calling pure virtual function

Peter Soetens peter at thesourceworks.com
Thu Feb 24 14:24:20 CET 2011


On Thu, Feb 24, 2011 at 12:27 PM, Thomas Roehr <thomas.roehr at dfki.de> wrote:
> Hey,
>
> one of our orocos components dies when calling a pure virtual function -
> first time seen. We are using RTT::corba::TaskContextProxy to directly
> connect two components, and we also create ports on the remote
> component. Any comments!?

What you're seeing here is the corba server calling into a component
that has been deleted. Normally, the server should be disposed when
the component is deleted, such that the proxy gets a corba exception.
This is today done by automatically installing a helper service in
each 'corbanized' component that informs the corba machinery when it
is being freed.

For some reason this mechanism is failing.

Peter

>
> Backtrace below
>
> Thomas
>
>
> #0  0x00007feba8169a75 in *__GI_raise (sig=<value optimized out>) at
> ../nptl/sysdeps/unix/sysv/linux/raise.c:64
> #1  0x00007feba816d5c0 in *__GI_abort () at abort.c:92
> #2  0x00007feba8a1f8e5 in __gnu_cxx::__verbose_terminate_handler() ()
> from /usr/lib/libstdc++.so.6
> #3  0x00007feba8a1dd16 in ?? () from /usr/lib/libstdc++.so.6
> #4  0x00007feba8a1dd43 in std::terminate() () from /usr/lib/libstdc++.so.6
> #5  0x00007feba8a1e61f in __cxa_pure_virtual () from /usr/lib/libstdc++.so.6
> #6  0x00007febaa376ff9 in RTT::internal::InvokerImpl<2, bool
> ()(std::string const&, std::string const&),
> RTT::internal::LocalOperationCallerImpl<bool ()(std::string const&,
> std::string const&)> >::call(std::string const&, std::string const&) ()
> from
> /opt/workspace/rimres/migration/install/lib/orocos/liblogger-tasks-gnulinux.so
> #7  0x00007febaa37a6ad in RTT::internal::FusedMCallDataSource<bool
> ()(std::string const&, std::string const&)>::evaluate() const ()
>    from
> /opt/workspace/rimres/migration/install/lib/orocos/liblogger-tasks-gnulinux.so
> #8  0x00007febaa37a869 in RTT::internal::FusedMCallDataSource<bool
> ()(std::string const&, std::string const&)>::get() const () from
> /opt/workspace/rimres/migration/install/lib/orocos/liblogger-tasks-gnulinux.so
> #9  0x00007febabed21d9 in
> RTT::corba::CorbaTemplateProtocol<bool>::createAny(boost::intrusive_ptr<RTT::base::DataSourceBase>)
> const ()
>    from
> /opt/workspace/rimres/migration/install/lib/orocos/types/librtt-transport-corba-gnulinux.so.2.2.1
> #10 0x00007feba92a09b6 in
> RTT_corba_COperationInterface_i::callOperation(char const*,
> RTT::corba::CAnyArguments&) () from
> /opt/workspace/rimres/migration/install/lib/liborocos-rtt-corba-gnulinux.so.2.2
> #11 0x00007feba92e91f0 in
> _0RL_lcfn_894b2c59f4799d0e_b1000000(omniCallDescriptor*, omniServant*)
> () from
> /opt/workspace/rimres/migration/install/lib/liborocos-rtt-corba-gnulinux.so.2.2
> #12 0x00007feba8f68f79 in omniCallHandle::upcall(omniServant*,
> omniCallDescriptor&) () from /usr/lib/libomniORB4.so.1
> #13 0x00007feba92ee4c8 in
> RTT::corba::_impl_COperationInterface::_dispatch(omniCallHandle&) ()
> from
> /opt/workspace/rimres/migration/install/lib/liborocos-rtt-corba-gnulinux.so.2.2
> #14 0x00007feba92fd7a6 in
> RTT::corba::_impl_CService::_dispatch(omniCallHandle&) () from
> /opt/workspace/rimres/migration/install/lib/liborocos-rtt-corba-gnulinux.so.2.2
> #15 0x00007feba8f559bd in omni::omniOrbPOA::dispatch(omniCallHandle&,
> omniLocalIdentity*) () from /usr/lib/libomniORB4.so.1
> #16 0x00007feba8f3b068 in omniLocalIdentity::dispatch(omniCallHandle&)
> () from /usr/lib/libomniORB4.so.1
> #17 0x00007feba8f878df in omni::GIOP_S::handleRequest() () from
> /usr/lib/libomniORB4.so.1
> #18 0x00007feba8f88088 in omni::GIOP_S::dispatcher() () from
> /usr/lib/libomniORB4.so.1
> #19 0x00007feba8f84a4e in omni::giopWorker::real_execute() () from
> /usr/lib/libomniORB4.so.1
> #20 0x00007feba8f8508f in omni::giopWorker::execute() () from
> /usr/lib/libomniORB4.so.1
> #21 0x00007feba8f315f7 in omniAsyncWorker::real_run() () from
> /usr/lib/libomniORB4.so.1
> #22 0x00007feba8f318bf in omniAsyncWorker::run(void*) () from
> /usr/lib/libomniORB4.so.1
> #23 0x00007feba8c6a24d in omni_thread_wrapper () from
> /usr/lib/libomnithread.so.3
> #24 0x00007feba7f1f9ca in start_thread (arg=<value optimized out>) at
> pthread_create.c:300
> #25 0x00007feba821c70d in clone () at
> ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
> #26 0x0000000000000000 in ?? ()
>
> --
> Thomas Röhr (M.Sc.)
> Space Robotics
>
> Standort Bremen:
> DFKI GmbH
> Robotics Innovation Center
> Robert-Hooke-Straße 5
> 28359 Bremen, Germany
>
> Phone: +49 (0)421 178-454151
> Fax:   +49 (0)421 178-454150
> E-Mail: robotik at dfki.de
>
> Weitere Informationen: http://www.dfki.de/robotik
> -----------------------------------------------------------------------
> Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
> Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
> Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
> (Vorsitzender) Dr. Walter Olthoff
> Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
> Amtsgericht Kaiserslautern, HRB 2313
> Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
> USt-Id.Nr.:    DE 148646973
> Steuernummer:  19/673/0060/3
> -----------------------------------------------------------------------
>
> _______________________________________________
> Rock-dev mailing list
> Rock-dev at dfki.de
> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev
>


More information about the Rock-dev mailing list