[omniORB] omniORB: Error in network receive...

Duncan Grisby duncan at grisby.org
Tue Jul 29 13:27:47 BST 2008


On Monday 21 July, "Damir Mamic" wrote:

> I am expiriencing problems with array of longs bigger than size 126898 within
> a struct. The *.idl representation of this struct looks like:
> 
> struct DMStruct {
>   long l[126899];
>   short s[100];
> };
> 
> I'm using omniORB4.1.1 on win32 platform.
> 
> I have attached to this mail the source codes of the idl file, the client and
> server implementations and the files generated with omniORB4.1.1.
> 
> The problem that shows up when raising the array inside the struct higher than
> 126898, at client side (trace level 25):

What do you see on the server side?

My guess is that you've run out of stack in the server thread. Arrays
are allocated on the stack in the C++ mapping, and you don't generally
have that much stack in each thread.

> omniORB: Error in network receive (start of message): giop:tcp:
> 192.168.5.19:1792
> omniORB: throw giopStream::CommFailure from giopStream.cc:874
> (0,MAYBE,0xcccccccc)

omniORB never sets a minor code of 0xcccccccc, which lends extra weight
to the idea that the stack is blown, since it has corrupted the state of
the exception.

I'd suggest you replace your arrays with sequences, since those are
allocated on the heap.

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --



More information about the omniORB-list mailing list