[openrtm-users 01191] Problem shutting down component when more then one connection exists

Steffen Wittmeier steffen.wittmeier @ in.tum.de
2010年 4月 16日 (金) 23:53:31 JST


Hi,

I receive a seg-fault when calling cleanupComponents(). The problem only 
occurs in the following setups (see also attached screenshot).

If component A (here LogViewer) is destructed by calling exit() on the 
component and cleanupComponents() on the manager (somehow 
cleanupComponent(rtc) does not call the destructor?) and this component 
A is connected to a port of component B (LogManager) which is turn 
connected to a component C (EcceosModel) I receive the seg-fault.

In contrast, if I remove the connection between component B and C and 
call exit() on component A, the application exits normally.

I attached a backtrace of the seg-fault. You can see that I am calling 
cleanupComponents() that leads to the destructor call of the PortProfile 
which causes the error.

Is this some internal error where you could provide a fix for? As I 
receive the same error when I exit the component A in the 
RTSystemEditor, it seems that it is not a problem of the component 
deletion within my code.

Any help is appreciated...


Many thanks in advance,
Steffen Wittmeier


#0  0x00007ffff2129f3f in omni::releaseObjRef(omniObjRef*) () from 
/usr/lib/libomniORB4.so.1
#1  0x00007ffff74aa18b in RTC::PortProfile::~PortProfile() () from 
/usr/local/lib/libRTC-1.0.0.so.0
#2  0x00007ffff750e6e0 in RTC::PortBase::~PortBase() () from 
/usr/local/lib/libRTC-1.0.0.so.0
#3  0x00007ffff74ef6f6 in RTC::CorbaPort::~CorbaPort() () from 
/usr/local/lib/libRTC-1.0.0.so.0
#4  0x00007ffff5ec4f1c in ~LogViewer (this=0xbcdfb0, __in_chrg=<value 
optimized out>, __vtt_parm=<value optimized out>)
     at 
/home/wittmeis/projects/eccerobot/workspaces/workspaceC++/gui @ src/src/er/gui/util/log/LogViewer.cpp:111
#5  0x00007ffff5ec9d6f in RTC::Delete<er::gui::util::log::LogViewer> 
(rtc=0xbce080) at /usr/local/include/rtm/Factory.h:94
#6  0x00007ffff747e688 in RTC::FactoryCXX::destroy(RTC::RTObject_impl*) 
() from /usr/local/lib/libRTC-1.0.0.so.0
#7  0x00007ffff748e027 in 
RTC::Manager::deleteComponent(RTC::RTObject_impl*) () from 
/usr/local/lib/libRTC-1.0.0.so.0
#8  0x00007ffff748e8a4 in RTC::Manager::cleanupComponents() () from 
/usr/local/lib/libRTC-1.0.0.so.0
#9  0x00007ffff1a05e77 in coil::Timer::invoke() () from 
/usr/local/stow/OpenRTM-aist-1.0.0/lib/libcoil.so.0
#10 0x00007ffff1a05ef8 in coil::Timer::svc() () from 
/usr/local/stow/OpenRTM-aist-1.0.0/lib/libcoil.so.0
#11 0x00007ffff1a0a24a in coil::Task::svc_run(void*) () from 
/usr/local/stow/OpenRTM-aist-1.0.0/lib/libcoil.so.0
#12 0x00007ffff240ca04 in start_thread (arg=<value optimized out>) at 
pthread_create.c:300
#13 0x00007ffff270180d in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:112



-- 
Steffen Wittmeier
Lehrstuhl für Informatik VI
Technische Universität München
Boltzmannstraße 3, 85748 Garching

Telefon : +89 289-18100
Telefax : +89 289-18107
E-Mail  : steffen.wittmeier @ in.tum.de
Internet: http://www6.in.tum.de/
-------------- next part --------------
$B%F%-%9%H7A<00J30$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
$B%U%!%$%kL>(B: SystemEditor.png
$B7?(B:         image/png
$B%5%$%:(B:     5577 $B%P%$%H(B
$B @ bL@(B:       $BL5$7(B
URL:        <http://www.openrtm.org/pipermail/openrtm-users/attachments/20100416/6eed66f6/attachment-0001.png>


openrtm-users メーリングリストの案内