Hi All,

I'm new to CORBA.
I'm using MICO version 2.3.11.

I have a client exe which instantiates a callback object  and provides the reference to a server function through server reference . After the Call Back Object function is called by the Server , the client exits calling the orb->destroy function from the executable.  This works fine for the first time.
When i execute the client exe again(on the same machine where i had ran the client exe previously) the Server Executable exits with segmentation fault during the call back execution.

If i comment the orb->destroy() in the client the client and server are working properly. But it may be leaking.

The client is created with TRANSIENT and USER_ID POA Policies. Nothing else is being set in the client side other than these.
In the server i am using "RootPOA"

The stack Trace  and error in GDB during segmentation fault of Server are as follows

#0  0xb734a4ce in std::_Rb_tree<CORBA::Address const*, std::pair<CORBA::Address const* const, MICO::GIOPConn*>, std::_Select1st<std::pair<CORBA::Address const* const, MICO::GIOPConn*> >, MICO::IIOPProxy::addrcomp, std::allocator<std::pair<CORBA::Address const* const, MICO::GIOPConn*> > >::find(CORBA::Address const* const&) () from /usr/local/lib/libmico2.3.11.so
#1  0xb7340e9e in MICO::IIOPProxy::make_conn(CORBA::Address const*, unsigned char, unsigned short) ()
   from /usr/local/lib/libmico2.3.11.so
#2  0xb7341830 in MICO::IIOPProxy::make_conn(CORBA::Object*) () from /usr/local/lib/libmico2.3.11.so
#3  0xb7341ea2 in MICO::IIOPProxy::invoke(CORBA::ORBInvokeRec*, CORBA::Object*, CORBA::ORBRequest*, CORBA::Principal*, unsigned char) () from /usr/local/lib/libmico2.3.11.so
#4  0xb7318fb1 in CORBA::ORB::invoke_async(CORBA::Object*, CORBA::ORBRequest*, CORBA::Principal*, unsigned char, CORBA::ORBCallback*, CORBA::ORBInvokeRec*) () from /usr/local/lib/libmico2.3.11.so
#5  0xb7364a2e in CORBA::StaticRequest::invoke() () from /usr/local/lib/libmico2.3.11.so
#6  0x0805626a in ABCInterface::ABCClient_stub::createABCSessionCb(ABCInterfaceDefs::CreateABCSessionResult const&) ()
#7  0x0805d519 in ABCServer_impl::createABCSession(long, long, char const*, char const*, char const*) ()
#8  0x0805a0c9 in POA_ABCInterface::ABCServer::dispatch(CORBA::StaticServerRequest*) ()
#9  0x0805a8dc in POA_ABCInterface::ABCServer::invoke(CORBA::StaticServerRequest*) ()
#10 0xb73b4fa6 in PortableServer::StaticImplementation::doinvoke(CORBA::ServerRequestBase*) ()
   from /usr/local/lib/libmico2.3.11.so
#11 0xb73c79a2 in MICOPOA::POA_impl::perform_invoke(MICOPOA::POA_impl::InvocationRecord*) ()
   from /usr/local/lib/libmico2.3.11.so
#12 0xb73c6ec4 in MICOPOA::POA_impl::local_invoke(MICOPOA::POA_impl::InvocationRecord*) ()
   from /usr/local/lib/libmico2.3.11.so
#13 0xb73c66a6 in MICOPOA::POA_impl::invoke(CORBA::ORBInvokeRec*, CORBA::Object*, CORBA::ORBRequest*, CORBA::Principal*, unsigned char) () from /usr/local/lib/libmico2.3.11.so
#14 0xb7318fb1 in CORBA::ORB::invoke_async(CORBA::Object*, CORBA::ORBRequest*, CORBA::Principal*, unsigned char, CORBA::ORBCallback*, CORBA::ORBInvokeRec*) () from /usr/local/lib/libmico2.3.11.so
#15 0xb73475f8 in MICO::IIOPServer::exec_invoke_request(MICO::GIOPInContext&, CORBA::Object*, CORBA::ORBRequest*, CORBA::Principal*, unsigned char, MICO::GIOPConn*, CORBA::ORBInvokeRec*) () from /usr/local/lib/libmico2.3.11.so
#16 0xb734791e in MICO::IIOPServer::handle_invoke_request(MICO::GIOPConn*, MICO::GIOPInContext&) ()
   from /usr/local/lib/libmico2.3.11.so
#17 0xb7346e5b in MICO::IIOPServer::handle_input(MICO::GIOPConn*, CORBA::Buffer*) ()
   from /usr/local/lib/libmico2.3.11.so
#18 0xb734916f in MICO::IIOPServer::input_callback(MICO::GIOPConn*, CORBA::Buffer*) ()
   from /usr/local/lib/libmico2.3.11.so
#19 0xb733e0f0 in MICO::GIOPConn::do_read(unsigned char) () from /usr/local/lib/libmico2.3.11.so
#20 0xb733f204 in MICO::GIOPConn::callback(CORBA::Transport*, CORBA::TransportCallback::Event) ()
   from /usr/local/lib/libmico2.3.11.so
#21 0xb7331d25 in MICO::SocketTransport::callback(CORBA::Dispatcher*, CORBA::Dispatcher::Event) ()
   from /usr/local/lib/libmico2.3.11.so
#22 0xb72faf0b in MICO::SelectDispatcher::handle_fevents(fd_set&, fd_set&, fd_set&) ()
   from /usr/local/lib/libmico2.3.11.so
#23 0xb72fb959 in MICO::SelectDispatcher::run(unsigned char) () from /usr/local/lib/libmico2.3.11.so
#24 0xb7315510 in CORBA::ORB::run() () from /usr/local/lib/libmico2.3.11.so
#25 0x0805e50c in testFun(void*) ()
#26 0xb75d0dac in start_thread () from /lib/tls/libpthread.so.0
#27 0xb6fde9ea in clone () from /lib/tls/libc.so.6

Could anybody tell me, how to fix this problem.
Any specific POA policies need to be set ??

I need to call the client exe to be executed again and again

Thanx in advance.
Himanshu.


_______________________________________________
Mico-devel mailing list
[email protected]
http://www.mico.org/mailman/listinfo/mico-devel

Reply via email to