[omniORB] setClientCallTimeout(obj, ) crash

Frederic Prin frederic.prin at silvaco.com
Wed May 5 15:49:26 BST 2004


Hi,

I use omniORB4.0.3 and I sometimes experience crash when a client calls
setClientCallTimeout(obj, ).
The internal call oo = obj->_PR_getobj(); returns NULL and oo-> crash.

	void
	omniORB::setClientCallTimeout(CORBA::Object_ptr obj,
CORBA::ULong v)
	{
	  omniObjRef* oo = obj->_PR_getobj();
	  oo->_setTimeout(v / 1000, (v % 1000) * 1000000);
	}

What is the  _PR_getobj(); job ?
Why it can returned NULL ?

This seems to appears when the client narrow an obj from a valid IOR
(using the name service) but the servant part is stopped at a breakpoint
location. (I believe it could also happen when the server machine is
dramatically overloaded). This is my code:

            CORBA::Object_var interface_obj = 
                init_naming_context->resolve( string_to_name(
object_list[i] ) ) ;


        PrincipalInterface_var principal_interface ;
        try 
        {
            principal_interface = PrincipalInterface::_narrow(
interface_obj ) ;

            omniORB::setClientCallTimeout( interface_obj,
PrincipalInterfaceImpl::PING_TIMEOUT ); // CRASH!

            if ( ! CORBA::is_nil( principal_interface ) ) 
            {
                principal_interface->GetStatus() ;


Thanks for any idea 

Fred


                              (
     Frédéric Prin          )
     Senior Software Engineer /
          S I L V A C O      (
     Grenoble REsearch CEnter \
     Tel 04 56 38 10 33        )
    __________________________/___
   /__/__/__/__/__/__/__/__/__/__/
  /__/__/__/__/__/__/__/__/_____/
 /__/__/__/__/__/__/__/__/__/__/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20040505/0da4b507/attachment.htm


More information about the omniORB-list mailing list