Malcolm Davey
2008-11-25 03:08:18 UTC
Hi there
The nsd have issues when we register with it.
We have a windows compile of 2.3.13 with THREADS not defined or turned
off.
Nsd command line is
nsd -ORBIIOPAddr inet:%MACHINE%:%NAMINGSERVICEPORT% -ORBNoResolve
-ORBIIOPVersion 1.2
My applications use the following as the address:
corbaloc:iiop:1.2@%MACHINE%:%NAMINGSERVICEPORT%/NameService
Where %MACHINE% is the machine name, %NAMINGSERVICEPORT% is the host
name
Our code which calls does the registration is the following:
Some initialization code is the following:
m_orb = CORBA::ORB_init( CORBA_Argc, CORBA_Argv,
_TEXT("mico-local-orb"));
CORBA::Object_var poaobj = m_orb->resolve_initial_references
("RootPOA");
m_root_poa = PortableServer::POA::_narrow (poaobj);
m_poa_mgr= m_root_poa->the_POAManager();
The code which has the problem is
CosNaming::NamingContext_var NC;
CORBA::ORB_var orb = CORBA::ORB_instance("mico-local-orb", false);
if (CORBA::is_nil (orb))
return NC;
CORBA::Object_var Obj;
Obj = orb->string_to_object(Address.c_str());
NC = CosNaming::NamingContext::_narrow(Obj);
return NC;
The final narrow call fails, or causes nsd to crash. Nsd crashes in the
following code
MICOPOA::POACurrent_impl::CurrentState::CurrentState
(PortableServer::POA_ptr _poa, POAObjectReference * _por,
PortableServer::Servant _serv)
{
poa = _poa;
por = _por;
serv = _serv;
serv->_add_ref (); // crashs on this line - serv seems like it is
invalid
}
Call stack in release mode of crash with nsd.exe
mico2313.dll!MICOPOA::POA_impl::local_invoke() Line 3565 C++
mico2313.dll!MICOPOA::POA_impl::invoke() Line 3421 C++
mico2313.dll!CORBA::ORB::invoke_async() Line 2581 C++
mico2313.dll!MICO::IIOPServer::exec_invoke_request() Line 5613
C++
mico2313.dll!MICO::IIOPServer::handle_invoke_request() Line 5676
C++
mico2313.dll!MICO::IIOPServer::handle_input() Line 5528 C++
mico2313.dll!MICO::IIOPServer::input_callback() Line 6154 C++
mico2313.dll!MICO::GIOPConn::do_read() Line 2769 C++
mico2313.dll!MICO::GIOPConn::callback() Line 2925 C++
mico2313.dll!MICO::SocketTransport::callback() Line 209 C++
mico2313.dll!MICO::SelectDispatcher::handle_fevents() Line 267
C++
mico2313.dll!MICO::SelectDispatcher::run() Line 460 C++
mico2313.dll!CORBA::ORB::perform_work() Line 1751 C++
nsd.exe!main() Line 221 C++
nsd.exe!__tmainCRTStartup() Line 586 C
We have two apps, which register with the name service. When the second
one registers nsd crashes. If the second one registers first then this
work, but then when the first apps registeration fails. Nds.exe only
seems to work for the first registration - when we substitute the 2.3.12
or 2.3.8 versions they nsd.exe in they work all the time.
We also built some of the tests which come with the source.
When running any of the messaging tests we get the errror message
"ERROR: exception not thrown" - don't know if this is the same problem
or different.
Malcolm
The nsd have issues when we register with it.
We have a windows compile of 2.3.13 with THREADS not defined or turned
off.
Nsd command line is
nsd -ORBIIOPAddr inet:%MACHINE%:%NAMINGSERVICEPORT% -ORBNoResolve
-ORBIIOPVersion 1.2
My applications use the following as the address:
corbaloc:iiop:1.2@%MACHINE%:%NAMINGSERVICEPORT%/NameService
Where %MACHINE% is the machine name, %NAMINGSERVICEPORT% is the host
name
Our code which calls does the registration is the following:
Some initialization code is the following:
m_orb = CORBA::ORB_init( CORBA_Argc, CORBA_Argv,
_TEXT("mico-local-orb"));
CORBA::Object_var poaobj = m_orb->resolve_initial_references
("RootPOA");
m_root_poa = PortableServer::POA::_narrow (poaobj);
m_poa_mgr= m_root_poa->the_POAManager();
The code which has the problem is
CosNaming::NamingContext_var NC;
CORBA::ORB_var orb = CORBA::ORB_instance("mico-local-orb", false);
if (CORBA::is_nil (orb))
return NC;
CORBA::Object_var Obj;
Obj = orb->string_to_object(Address.c_str());
NC = CosNaming::NamingContext::_narrow(Obj);
return NC;
The final narrow call fails, or causes nsd to crash. Nsd crashes in the
following code
MICOPOA::POACurrent_impl::CurrentState::CurrentState
(PortableServer::POA_ptr _poa, POAObjectReference * _por,
PortableServer::Servant _serv)
{
poa = _poa;
por = _por;
serv = _serv;
serv->_add_ref (); // crashs on this line - serv seems like it is
invalid
}
Call stack in release mode of crash with nsd.exe
mico2313.dll!MICOPOA::POACurrent_impl::set() Line 417 C++
mico2313.dll!MICOPOA::POA_impl::perform_invoke() Line 3996 C++mico2313.dll!MICOPOA::POA_impl::local_invoke() Line 3565 C++
mico2313.dll!MICOPOA::POA_impl::invoke() Line 3421 C++
mico2313.dll!CORBA::ORB::invoke_async() Line 2581 C++
mico2313.dll!MICO::IIOPServer::exec_invoke_request() Line 5613
C++
mico2313.dll!MICO::IIOPServer::handle_invoke_request() Line 5676
C++
mico2313.dll!MICO::IIOPServer::handle_input() Line 5528 C++
mico2313.dll!MICO::IIOPServer::input_callback() Line 6154 C++
mico2313.dll!MICO::GIOPConn::do_read() Line 2769 C++
mico2313.dll!MICO::GIOPConn::callback() Line 2925 C++
mico2313.dll!MICO::SocketTransport::callback() Line 209 C++
mico2313.dll!MICO::SelectDispatcher::handle_fevents() Line 267
C++
mico2313.dll!MICO::SelectDispatcher::run() Line 460 C++
mico2313.dll!CORBA::ORB::perform_work() Line 1751 C++
nsd.exe!main() Line 221 C++
nsd.exe!__tmainCRTStartup() Line 586 C
We have two apps, which register with the name service. When the second
one registers nsd crashes. If the second one registers first then this
work, but then when the first apps registeration fails. Nds.exe only
seems to work for the first registration - when we substitute the 2.3.12
or 2.3.8 versions they nsd.exe in they work all the time.
We also built some of the tests which come with the source.
When running any of the messaging tests we get the errror message
"ERROR: exception not thrown" - don't know if this is the same problem
or different.
Malcolm