[Bug 564] New: corba-test segfaults

For more infomation about this bug, visit
Summary: corba-test segfaults
Product: RTT
Version: rtt-trunk
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: Corba
AssignedTo: orocos-dev [..] ...
ReportedBy: ruben [dot] smits [..] ...
CC: orocos-dev [..] ...
Estimated Hours: 0.0

When running the corba-tests on gnulinux i get a segfault:

./corba-test
..IOR:010000001e00000049444c3a5254542f436f7262612f436f6e74726f6c5461736b3a312e300000000100000000000000780000000101020019000000453136312e6d6563682e6b756c657576656e2e61632e6265000092981b00000014010f00525354f2954748604a0e000000000001000000010000000002000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000
F.IOR:010000001e00000049444c3a5254542f436f7262612f436f6e74726f6c5461736b3a312e300000000100000000000000780000000101020019000000453136312e6d6563682e6b756c657576656e2e61632e6265000092981b00000014010f00525354f2954748604a0e002a000000010000002b0000000002000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000
Segmentation fault

this is the backtrace from gdb:

..IOR:010000001e00000049444c3a5254542f436f7262612f436f6e74726f6c5461736b3a312e300000000100000000000000780000000101020019000000453136312e6d6563682e6b756c657576656e2e61632e62650000139d1b00000014010f0052535409964748c71c08000000000001000000010000000002000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000
F.IOR:010000001e00000049444c3a5254542f436f7262612f436f6e74726f6c5461736b3a312e300000000100000000000000780000000101020019000000453136312e6d6563682e6b756c657576656e2e61632e62650000139d1b00000014010f0052535409964748c71c08002a000000010000002b0000000002000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f71a1fe26f0 (LWP 14035)]
0x00007f71a0e18699 in RTT::detail::TemplateConstructor 1>::convert (this=0x757370, arg=@0x7fffaa014350)
at /home/rsmits/orocos/rtt/src/TemplateTypeInfo.hpp:496
496 if ( arg->getTypeInfo() ==
DataSourceTypeInfo::getTypeInfo() ) {
(gdb) bt
#0 0x00007f71a0e18699 in RTT::detail::TemplateConstructor 1>::convert (this=0x757370, arg=@0x7fffaa014350)
at /home/rsmits/orocos/rtt/src/TemplateTypeInfo.hpp:496
#1 0x00007f71a0d8626c in RTT::TypeInfo::convert (this=0x7565c0,
arg=@0x7fffaa014430) at /home/rsmits/orocos/rtt/src/Types.cpp:133
#2 0x00000000004f2290 in
RTT::detail::OperationFactoryPart1 RTT::detail::DataSourceArgsMethod RTT::detail::FunctorDataSource std::allocator > > >, int>::produce (this=0x7f2ee0, args=@0x7fffaa014570)
at /home/rsmits/orocos/rtt/src/OperationFactory.hpp:201
#3 0x00007f71a0daa917 in RTT::OperationFactory::produce
(this=0x7f26b8, name=@0x7fffaa0145d0, args=@0x7fffaa014570)
at /home/rsmits/orocos/rtt/src/OperationFactory.hpp:506
#4 0x00007f71a06bac70 in Orocos_MethodInterface_i::createMethod
(this=0x8150e0, method=0x815b28 "m1", args=@0x7a74a0)
at /home/rsmits/orocos/rtt/src/corba/OperationInterfaceI.cpp:174
#5 0x00007f71a070deef in POA_RTT::Corba::createMethod_MethodInterface::execute
(this=0x7fffaa014770)
at /home/rsmits/orocos/rtt/build/src/corba/OperationInterfaceS.cpp:978
#6 0x00007f719f07ee0a in TAO::Upcall_Wrapper::upcall () from
/usr/lib/libTAO_PortableServer.so.1.4.7
#7 0x00007f71a070aa7c in POA_RTT::Corba::MethodInterface::createMethod_skel
(server_request=@0x7fffaa014aa0, servant_upcall=0x7fffaa014870,
servant=0x8150e0) at
/home/rsmits/orocos/rtt/build/src/corba/OperationInterfaceS.cpp:1046
#8 0x00007f719f07bb5a in TAO_ServantBase::synchronous_upcall_dispatch () from
/usr/lib/libTAO_PortableServer.so.1.4.7
#9 0x00007f71a070798f in POA_RTT::Corba::MethodInterface::_dispatch
(this=0x8150e0, req=@0x7fffaa014aa0, servant_upcall=0x7fffaa014870)
at /home/rsmits/orocos/rtt/build/src/corba/OperationInterfaceS.cpp:1633
#10 0x00007f719f04e4eb in TAO_Object_Adapter::dispatch_servant () from
/usr/lib/libTAO_PortableServer.so.1.4.7
#11 0x00007f719f04f028 in TAO_Object_Adapter::dispatch () from
/usr/lib/libTAO_PortableServer.so.1.4.7
#12 0x00007f719f3d4a99 in TAO_Adapter_Registry::dispatch () from
/usr/lib/libTAO.so.1.4.7
#13 0x00007f719f452136 in TAO_Request_Dispatcher::dispatch () from
/usr/lib/libTAO.so.1.4.7
#14 0x00007f719f3e3141 in TAO::Collocated_Invocation::invoke () from
/usr/lib/libTAO.so.1.4.7
#15 0x00007f719f41add1 in TAO::Invocation_Adapter::invoke_collocated_i () from
/usr/lib/libTAO.so.1.4.7
#16 0x00007f719f41a7ff in TAO::Invocation_Adapter::invoke_i () from
/usr/lib/libTAO.so.1.4.7
#17 0x00007f719f41acf0 in TAO::Invocation_Adapter::invoke () from
/usr/lib/libTAO.so.1.4.7
#18 0x00007f71a0712634 in RTT::Corba::MethodInterface::createMethod
(this=0x8158b0, method=0x815b28 "m1", args=@0x7a74a0)
at /home/rsmits/orocos/rtt/build/src/corba/OperationInterfaceC.cpp:1139
#19 0x00007f71a06a8109 in RTT::Corba::CorbaMethodFactory::produce
(this=0x815b40, args=@0x8071c0)
at /home/rsmits/orocos/rtt/src/corba/CorbaMethodFactory.hpp:122
#20 0x00007f71a0daa917 in RTT::OperationFactory::produce
(this=0x814458, name=@0x8071b8, args=@0x8071c0)
at /home/rsmits/orocos/rtt/src/OperationFactory.hpp:506
#21 0x00007f71a0daaac9 in RTT::MethodC::D::checkAndCreate (this=0x8071b0) at
/home/rsmits/orocos/rtt/src/MethodC.cpp:70
#22 0x00007f71a0daabea in RTT::MethodC::D::newarg (this=0x8071b0,
na=@0x7fffaa015290) at /home/rsmits/orocos/rtt/src/MethodC.cpp:83
---Type to continue, or q to quit---
#23 0x00007f71a0da8f4c in RTT::MethodC::arg (this=0x81fd80, a=@0x7fffaa0152e0)
at /home/rsmits/orocos/rtt/src/MethodC.cpp:150
#24 0x00000000004ebf7a in RTT::detail::DataSourceStorageImpl<1, double
()(int)>::initArgs (this=0x81fd70, cc=@0x81fd80)
at /home/rsmits/orocos/rtt/src/DataSourceStorage.hpp:157
#25 0x00000000004ec03a in RemoteMethod (this=0x81fd60, of=0x814458,
name=@0x7fffaa0153d0) at /home/rsmits/orocos/rtt/src/RemoteMethod.hpp:139
#26 0x00000000004ec26a in RTT::MethodRepository::getMethod
(this=0x814458, name=@0x7fffaa015750)
at /home/rsmits/orocos/rtt/src/MethodRepository.hpp:147
#27 0x00000000004a2ed9 in CorbaTest::testRemoteMethod (this=0x759040) at
/home/rsmits/orocos/rtt/tests/corba_test.cpp:142
#28 0x00000000004ae272 in CppUnit::TestCaller::runTest
(this=0x756990) at /usr/include/cppunit/TestCaller.h:166
#29 0x00007f71a0234847 in CppUnit::TestCaseMethodFunctor::operator() () from
/usr/lib/libcppunit-1.12.so.0
#30 0x00007f71a0226c44 in CppUnit::DefaultProtector::protect () from
/usr/lib/libcppunit-1.12.so.0
#31 0x00007f71a0230759 in CppUnit::ProtectorChain::ProtectFunctor::operator()
() from /usr/lib/libcppunit-1.12.so.0
#32 0x00007f71a023049c in CppUnit::ProtectorChain::protect () from
/usr/lib/libcppunit-1.12.so.0
#33 0x00007f71a023c240 in CppUnit::TestResult::protect () from
/usr/lib/libcppunit-1.12.so.0
#34 0x00007f71a02344dd in CppUnit::TestCase::run () from
/usr/lib/libcppunit-1.12.so.0
#35 0x00007f71a0234e3c in CppUnit::TestComposite::doRunChildTests () from
/usr/lib/libcppunit-1.12.so.0
#36 0x00007f71a0234d66 in CppUnit::TestComposite::run () from
/usr/lib/libcppunit-1.12.so.0
#37 0x00007f71a0234e3c in CppUnit::TestComposite::doRunChildTests () from
/usr/lib/libcppunit-1.12.so.0
#38 0x00007f71a0234d66 in CppUnit::TestComposite::run () from
/usr/lib/libcppunit-1.12.so.0
#39 0x00007f71a023bfca in CppUnit::TestResult::runTest () from
/usr/lib/libcppunit-1.12.so.0
#40 0x00007f71a023e5c2 in CppUnit::TestRunner::run () from
/usr/lib/libcppunit-1.12.so.0
#41 0x00007f71a02415db in CppUnit::TextTestRunner::run () from
/usr/lib/libcppunit-1.12.so.0
#42 0x00000000004930a4 in ORO_main_impl (argc=1, argv=0x7fffaa016028) at
/home/rsmits/orocos/rtt/tests/test-runner.cpp:51
#43 0x000000000049327e in main (argc=1, argv=0x7fffaa016028) at
/home/rsmits/orocos/rtt/tests/test-runner.cpp:29

Ruben

[Bug 564] corba-test fails to connect proxy-to-proxy

For more infomation about this bug, visit

Peter Soetens
<peter [dot] soetens [..] ...> changed:

What |Removed |Added
--------------------------------------------------------------------------
Summary|corba-test segfaults |corba-test fails to connect
| |proxy-to-proxy
CC| |peter [dot] soetens [..] ...

--- Comment #2 from Peter Soetens
<peter [dot] soetens [..] ...> 2008-06-05 10:48:35 ---
(In reply to comment #1)
> I got rid of the segfault, i had some local changes for some reason in the
> ControlTaskProxy, i reverted to trunk and the segfault disappeared.

I thought so..

>
> corba_test.cpp:413:Assertion
> Test name: CorbaTest::testConnectPortsRR
> assertion failed
> - Expression: md2->connected()
>
> corba_test.cpp:413:Assertion
> Test name: CorbaTest::testConnectPortsRRC
> assertion failed
> - Expression: md2->connected()

This is a known bug, that's why the test is in there. We can not yet connect
the ports of two ControlTaskProxy objects (one needs to be ControlTaskServer).
Is not a priority issue, although this could mean that the deployer can not
connect the ports of two remote taskcontexts to each other.

Peter

Ruben Smits's picture

[Bug 564] corba-test segfaults

For more infomation about this bug, visit

--- Comment #1 from Ruben Smits <ruben [dot] smits [..] ...> 2008-06-05 10:41:52 ---
I got rid of the segfault, i had some local changes for some reason in the
ControlTaskProxy, i reverted to trunk and the segfault disappeared.

But the test still fails:

9/ 9 Testing corba-test
Test command: /home/rsmits/orocos/rtt/build/tests/corba-test
Test timeout computed to be: 9.99988e+06
..IOR:010000001e00000049444c3a5254542f436f7262612f436f6e74726f6c5461736b3a312e300000000100000000000000780000000101020019000000453136312e6d6563682e6b756c657576656e2e61632e62650000548d1b00000014010f0052535419a7474864e10b000000000001000000010000000002000000000000000800000001000000004f41540100000018000000010000000100010001000000010001050901010000000000

[...]

corba_test.cpp:413:Assertion
Test name: CorbaTest::testConnectPortsRR
assertion failed
- Expression: md2->connected()

corba_test.cpp:413:Assertion
Test name: CorbaTest::testConnectPortsRRC
assertion failed
- Expression: md2->connected()

Ruben