[omniORB] Timeouts on oneway calls

Serguei Kolos Serguei.Kolos at cern.ch
Fri Apr 4 11:59:58 BST 2008


Doing some further investigation I have realized that the same applies 
to a normal two-way calls
as well. The problem is that it is possible that tcpConnection::Send 
function blocks forever on the
::send call (tcpConnection.cc:205) if the message is large enough and 
the server is hanging. This
happens because the tcp sockets are used in the blocking mode 
(O_NONBLOCK is not set).
I understand that using non-blocking mode for sockets is more 
problematic since EAGAIN error
requires a non-trivial handling but on the other hand this is a serious 
issue in my case.

I have a reliable client which is sending data and non-reliable servers 
which are written by different
users and may die (easy case) or hang. In the latter case my client also 
hangs forever which is
I'll be glad to hear any ideas on how to handle this issue.


Serguei Kolos пишет:
> Hello
> I have noticed a weired behavior of timeouts for one-way calls - it 
> seems that they depend on the
> amount of data which is being sent. The one-way function takes 
> sequence of bytes as its argument
> and if the server application hangs by some reason then I get the 
> following behavior on the client
> side:
> 1. If the sequence is shorter then 4KB then the client gets the 
> TRANSIENT exception with the Timeout minor
>    code right after 10 seconds which is the timeout that I'm using
> 2. If the sequence size is more then 5KB then the client application 
> hangs forever. One interesting point is
>    that if I stop the hanging client with Ctrl-Z and then bring it 
> back with the 'fg' command then the one-way
>     function immediately throws the TRANSIENT Timeout exception.
> I'm using omniORB 4.0.7 on SLC4 Linux with gcc 3.4
> Does anybody have an idea why I got this behavior and how this could 
> be improved ?
> Cheers,
> Sergei
> _______________________________________________
> omniORB-list mailing list
> omniORB-list at omniorb-support.com
> http://www.omniorb-support.com/mailman/listinfo/omniorb-list

More information about the omniORB-list mailing list