[omniORB] Question concerning problems with an old omniORB-version

mrfynn at gmx.net mrfynn at gmx.net
Wed Aug 9 12:02:04 BST 2006


Hi Duncan,

thanks for your response! 

> It's not totally clear from your message which program crashes, the
> server on the embedded system or the Windows client. I think you're
> talking about the server are you?
Yes indeed the server crashes.

> If possible, run both client and server with -ORBtraceLevel 25 to see
> what they think is going on.
Thanks for reminding me to have this option, I will have a look there.

> I assume that the network connection is not being closed by orb
> destruction, but only happens when the client exists.
Yes you are right. Yesterday I've managed to debug into the 
tcpSocketWorker::_realRun-method just up to the point where
the exception omniConnectionBroken is catched, or should be.
>From then on my systems behaviuor looks very weird.

After that I've tested another sort of exception by transmitting
a non existing (i.e. too big) CORBA-enum constant during a method call.
During the <<-Operation _CORBA_marshal_error() is invoked then, as supposed.
The following throw-statement (_CORBA_marshal_error) leads also to a
crash - although there are differences. 

A simple try-catch block with a thrown int-exception does work properly,
but I dont think this will be of any use for me at the moment.

> One wild guess is that your new compile options mean you no longer have
> thread safe C++ exception handling. When the client connection goes
> away, the server will throw an exception that should be caught higher up
> the call chain. If the exception handling is broken, that could cause a
> crash.
The compile options remained the same. But as far as i've figured out yet
(a wild guess, too) the point I will have to look has something to do with exception handling.
Our new speedup-extension uses some tricks. The linker command file is written in a way that the code is linked to the RAM, but located in ROM.
A new startup routine initializes the runtime environment and afterwards
copies the needed code sections into RAM. And there I will have to look.
Because this speedup-extension has not been used with either exception handling nor CORBA ("black magic"). 
So I will start checking the maps of the server-firmware with extension
and without to see if there is some difference! Because without this speedup extension all works fine!

If interested I will keep you informed regarding my efforts!

Cheers,

Jakob




More information about the omniORB-list mailing list