[omniORB] omniORB 2.6.1: Server crash

Sai-Lai Lo S.Lo@uk.research.att.com
01 Apr 1999 12:42:12 +0100


The stack trace looks suspicous. I notice the proxy object is doing a
resetRopeAndKey(). This only happens when something has gone wrong with
this invocation, i.e. COMM failure or OBJECT_NOT_EXIST, AND the proxy knows
a previous location forward has been received. The resetRopeAndKey() is
to reset the object reference back to the original location before
retrying. 

Now, did the visibroker server send out a LOCATION FORWARD message
previously? If you turn up the omniORB::traceLevel to over 10, the ORB
would print a message "GIOP::LOCATION_FORWARD: retry request." if it
receives a LOCATION_FORWARD message.

If the visibroker server does not send out a LOCATION FORWARD, then somehow
the flag which tells whether this object has received a location forward is
incorrect. The flag is stored in the variable _0RL_fwd in the stack frame of
_proxy_itccClient::sync_request(). A straight forward explanation is that
you have a stack overflow or something has mess up the stack. 

Sai-Lai


>>>>> Jan Lessner writes:

> Hi omniORBs
> I just ran into a server crash which seems to be related to some very
> deep down details of omniORB. It occured when calling a VisiBroker
> server from an omniORB server but it doesn't look as if it were an
> interoparability problem. The invoked method is not oneway and causes
> the contacted server to exit. This situation seems to mess up some
> clean-up work in the caller process. Here's the stack trace, maybe any
> of you pros can tell something about it. I checked the application with
> Purify as well and there is nothing suspicious going on before the
> actual crash.
> If the problem may be solved in a newer version of omniORB, just let me
> know.

> Regards,
> Jan Lessner, C-LAB


> =>[1] _CORBA_Sequence<IOP::TaggedProfile>::length(0x0, 0xef66a888,
> 0xef7fac24, 0x30594, 0x164dd, 0xef608c54), at 0xef67d5f8
>   [2] static ropeFactory::iopProfilesToRope(0x0, 0xee40efe8, 0xee40efe4,
> 0xee40efec, 0x0, 0xef4a0cd0), at 0xef67c108
>   [3] omniObject::resetRopeAndKey(0x7b630, 0x2, 0x2008, 0x0, 0x0,
> 0x7b968), at 0xef66a958
>   [4] _proxy_itccClient::sync_request(this = 0x7b628, rcvr = 478648, id
> = 0x77128 "cobra-ctrl", body =  CLASS ), line 3419 in
> "sun5/../itccSK.cpp"
>   [5] RegisteredClient::sync_request(this = 0x7b9d8, rcvr = 478648,
> opname = 0x77128 "cobra-ctrl", body =  CLASS ), line 254 in
> "sun5/../itcsrv.cpp"
>   [6] Replier::request(this = 0x74dd8, opname = 0x77128 "cobra-ctrl",
> body =  CLASS ), line 329 in "sun5/../itcsrv.cpp"
>   [7] PendingAsync::deliver(this = 0x90788, b =  CLASS ), line 409 in
> "sun5/../itcsrv.cpp"
>   [8] itccServer_i::sync_request(this = 0x7a448, clientid = 591128, msg
> = 0x770b0 "cobra-ctrl", body =  CLASS ), line 1005 in
> "sun5/../itcsrv.cpp"
>   [9] _sk_itccServer::dispatch(this = 0x7a448, _0RL_s =  CLASS , _0RL_op
> = 0xee40fb5c "sync_request", _0RL_response_expected = '^A'), line 2392
> in "sun5/../itccSK.cpp"
>   [10] GIOP_S::HandleRequest(0xee40fb0c, 0x0, 0x0, 0x1, 0x8, 0x0), at
> 0xef6515a0
>   [11] static GIOP_S::dispatcher(0x7bc48, 0xef496b60, 0xef6dc6c8,
> 0x77018, 0x0, 0xef4157e4), at 0xef650664
> dbx: objectfile
> '/globals/p1/lip/lipdevel/omniORB/2.6.1/src/lib/omniORB2/sharedlib/tcpSocketMTfactory.o'
> is not in ELF format
>   [0] , at 
> dbx: objectfile
> '/globals/p1/lip/lipdevel/omniORB/2.6.1/src/lib/omniORB2/sharedlib/corbaOrb.o'
> is not in ELF format
>   [0] , at 
>   [14] tcpSocketWorker::run(0x7bce0, 0x7bc48, 0x76258, 0x76258, 0x77020,
> 0x3), at 0xef6dd44c
> dbx: objectfile
> '/globals/p1/lip/lipdevel/omniORB/2.6.1/src/lib/omnithread/sharedlib/posix.o'
> is not in ELF format
>   [0] , at



-- 
Sai-Lai Lo                                   S.Lo@uk.research.att.com
AT&T Laboratories Cambridge           WWW:   http://www.uk.research.att.com 
24a Trumpington Street                Tel:   +44 223 343000
Cambridge CB2 1QA                     Fax:   +44 223 313542
ENGLAND