[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 メーリングリストの案内