Re: comm_failure for large sequences using giop between two machines



Hi Michael,

I have tracked the problem with large sequences over GIOP down to 
src/orb/GIOP/giop-recv-buffer.c giop_recv_msg_reading_body. There is a 
condition causes the function to fail:

!is_auth && buf->msg.header.message_size > giop_initial_msg_size_limit

My large messages exceed the giop_initial_msg_size_limit (256K) 
substatially. So giop_recv_msg_reading_body fails and this eventually 
causes the client to disconnect and generate the COMM_ERROR exception. 
Removing the condition allows the test I sent yesterday to run to 
completion.

What is the purpose of the above condition? Is it to prevent a client 
from performing an attack by sending very large messages? Can it be 
removed? is_auth is determined by the protocol and therefore never set 
for IPv4, is that correct?

These artificial limits pose a bit of a problem for the project I am 
working on. Since the client and server may need to send and receive 
very large sequences. Unfortunately, there is no way to predict 
beforehand an upper limit on the size of the sequences.



Michael Meeks wrote:

>	Hopefully we can nail it easily enough then,
>
>  
>


-- 
Bowie Owens

CSIRO Mathematical & Information Sciences
phone  : +61 3 9545 8055
fax    : +61 3 9545 8080
mobile : 0425 729 875
email  : Bowie.Owens@csiro.au






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]