<div>Will,</div><div><br></div>You don&#39;t say what platform this is but omniORB does things in threads. &nbsp;I would assume other ORBs do too. &nbsp;It is generally a bad idea to use large arrays in threads because they likely have limited stack space. &nbsp;Try changing your example to use a sequence&lt;octet&gt;.<div>
<br></div><div>Bruce<br><br><div class="gmail_quote">On Thu, Jan 22, 2009 at 9:26 AM, Michael <span dir="ltr">&lt;<a href="mailto:omniorb@bindone.de">omniorb@bindone.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
You can change giopMaxMsgSize in omniORB.cfg to a higher value. You<br>
shouldn&#39;t use arrays, because they are allocated on the stack (therefore<br>
I would assume the different exceptions), use a sequence instead<br>
(typedef sequence&lt;octet&gt; OctSeq)<br>
<div><div></div><div class="Wj3C7c"><br>
Will Denissen wrote:<br>
&gt; Dear Duncan,<br>
&gt;<br>
&gt; I have modified the standard echo example into<br>
&gt; one simple function st_fi with one inout parameter of a big fixed size<br>
&gt; structure type.<br>
&gt;<br>
&gt; Depending on the size of the dimension DIM, the client and server react<br>
&gt; differently (see echo.idl)<br>
&gt;<br>
&gt; --- echo.idl<br>
&gt; ------------------------------------------------------------------------<br>
&gt; ------<br>
&gt; // &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Client: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Server:<br>
&gt;<br>
&gt; //const long DIM = 2097152; // &nbsp;2MB &nbsp; CORBA::MARSHAL &nbsp; &nbsp; &nbsp; &nbsp; OK<br>
&gt; //const long DIM = 2097100; // &nbsp; &nbsp; &nbsp; &nbsp;CORBA::MARSHAL &nbsp; &nbsp; &nbsp; &nbsp; OK<br>
&gt; //const long DIM = 2097000; // &nbsp; &nbsp; &nbsp; &nbsp;CORBA::COMM_FAILURE<br>
&gt; Segmentation Fault after a while<br>
&gt; //const long DIM = 1100000; // &nbsp; &nbsp; &nbsp; &nbsp;CORBA::COMM_FAILURE<br>
&gt; Segmentation Fault after a while<br>
&gt; //const long DIM = 1048576; // &nbsp;1MB &nbsp; sys exc TRANSIENT<br>
&gt; Segmentation Fault after a while<br>
&gt; //const long DIM = 1000000; // &nbsp; &nbsp; &nbsp; &nbsp;OK &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; OK<br>
&gt;<br>
&gt; const long &nbsp; DIM = 1048576;<br>
&gt;<br>
&gt; struct st_fi_t {<br>
&gt; &nbsp; octet x[DIM];<br>
&gt; };<br>
&gt;<br>
&gt; interface Echo {<br>
&gt; &nbsp; void st_fi(inout st_fi_t p1);<br>
&gt; };<br>
&gt;<br>
&gt; --- end of echo.idl<br>
&gt; ------------------------------------------------------------------------<br>
&gt;<br>
&gt;<br>
&gt; Have you any idea why omniorb is reacting like this?<br>
&gt; How do I know what the exact bounderies are that will give a robust<br>
&gt; correctly working omniorb?<br>
&gt; Is it possible to build in extra checks into omniorb to prevent/detect<br>
&gt; this kind of unwanted behaviour?<br>
&gt;<br>
&gt; PS:<br>
&gt; If you need to reproduce the results.<br>
&gt; The server implementation of st_fi is just empty (see serv.cc).<br>
&gt; The client just calls st_fi once with it parameter allocated on the heap<br>
&gt; (see clnt.cc)<br>
&gt; The executables are build and started with (makefile, start_client,<br>
&gt; start_server).<br>
&gt; The used options file is sample.cfg.<br>
&gt; I am using omniorb 4.1.3 on Solaris 5.8 and gcc 4.1.2<br>
&gt;<br>
&gt; Will.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
</div></div>&gt; ------------------------------------------------------------------------<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; omniORB-list mailing list<br>
&gt; <a href="mailto:omniORB-list@omniorb-support.com">omniORB-list@omniorb-support.com</a><br>
&gt; <a href="http://www.omniorb-support.com/mailman/listinfo/omniorb-list" target="_blank">http://www.omniorb-support.com/mailman/listinfo/omniorb-list</a><br>
<br>
_______________________________________________<br>
omniORB-list mailing list<br>
<a href="mailto:omniORB-list@omniorb-support.com">omniORB-list@omniorb-support.com</a><br>
<a href="http://www.omniorb-support.com/mailman/listinfo/omniorb-list" target="_blank">http://www.omniorb-support.com/mailman/listinfo/omniorb-list</a><br>
</blockquote></div><br></div>