Drop a bug report to: <a href="http://bugzilla.ximian.com">bugzilla.ximian.com</a> containing that testcase and put it under the &#39;compilers&#39; section. It sounds like a gmcs issue.<br><br>Alan.<br><br><div><span class="gmail_quote">
On 7/18/07, <b class="gmail_sendername">David Wolinsky</b> &lt;<a href="mailto:davidiw@ufl.edu">davidiw@ufl.edu</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
FYI, this case is only triggered when using gmcs and not mcs.<br><br>David<br><br>David Wolinsky wrote:<br>&gt; We&#39;ve isolated the problem down to AutoResetEvent...<br>&gt;<br>&gt; using System;<br>&gt; using System.Threading
;<br>&gt;<br>&gt; namespace Ipop {<br>&gt;&nbsp;&nbsp;public class IPOP_Common {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;public static void Main() {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AutoResetEvent re = null;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(true) {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;re = new AutoResetEvent(false);
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;re.Close();<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt;&nbsp;&nbsp;}<br>&gt; }<br>&gt;<br>&gt; blows up memory<br>&gt;<br>&gt; whereas ...<br>&gt;<br>&gt; using System.Security.Cryptography;<br>&gt; using System;<br>&gt;<br>
&gt; namespace Ipop {<br>&gt;&nbsp;&nbsp;public class IPOP_Common {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;public static void Main() {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(true) {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;byte[] key = new byte[1024];
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rng.GetBytes(key);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&gt;&nbsp;&nbsp;}<br>&gt; }<br>&gt;<br>&gt; This doesn&#39;t.<br>&gt;<br>&gt; David Wolinsky wrote:<br>&gt;&gt; We run this software on system where memory is a concern.&nbsp;&nbsp;The data
<br>&gt;&gt; that we presented is our test case system that has 50 nodes all<br>&gt;&gt; running in the same mono process.&nbsp;&nbsp;We run only a single node at each<br>&gt;&gt; site which initially starts at ~15 MB, we&#39;ve seen it swell to well
<br>&gt;&gt; over 300 MBs in a period of less than a week.&nbsp;&nbsp;Since this must be<br>&gt;&gt; used in production environments and is meant to be extremely<br>&gt;&gt; lightweight we can forgive a small memory portion like 15 MB, since
<br>&gt;&gt; it has relatively no processing overhead, but at over 300 MBs our<br>&gt;&gt; processes are often stopped by the remote admin and we are told to<br>&gt;&gt; clean up the problem.<br>&gt;&gt;<br>&gt;&gt; Since this seems to be a problem of using a non-compacting gc, do you
<br>&gt;&gt; know where the compacting gc is, so that we could at least test it<br>&gt;&gt; out.&nbsp;&nbsp;I searched the SVN and found no clues of it.<br>&gt;&gt;<br>&gt;&gt; Also, I should correct myself, the results for memory consumption
<br>&gt;&gt; were not directly related to the test that grows at 25kB/sec.&nbsp;&nbsp;I<br>&gt;&gt; found this out after posting the data, I am running heap-shot right<br>&gt;&gt; now with the correct test and it has grown 100MB in less than 1 hour.
<br>&gt;&gt;<br>&gt;&gt; Regards,<br>&gt;&gt; David<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; Alan McGovern wrote:<br>&gt;&gt;<br>&gt;&gt;&gt; Well, after 12 hours at a consistent 25kB/sec, you&#39;d expect to have<br>
&gt;&gt;&gt; over 1 gig of memory allocated. As you don&#39;t, i think what you&#39;re<br>&gt;&gt;&gt; seeing is just &#39;normal usage&#39; for the non-compacting GC that mono<br>&gt;&gt;&gt; uses. I have a similar app which uses sockets extensively (50-150
<br>&gt;&gt;&gt; simultaneous connections)&nbsp;&nbsp;and i can assure you that memory usage<br>&gt;&gt;&gt; doesn&#39;t get unbearably large. It&#39;d be interesting to see the logs<br>&gt;&gt;&gt; but i don&#39;t think there&#39;s much to be worried about.
<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; Alan.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; On 7/18/07, *David Wolinsky* &lt;<a href="mailto:davidiw@ufl.edu">davidiw@ufl.edu</a><br>&gt;&gt;&gt; &lt;mailto:<a href="mailto:davidiw@ufl.edu">davidiw@ufl.edu
</a>&gt;&gt; wrote:<br>&gt;&gt;&gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Initially 45 MB, 12 hours later 147 MB<br>&gt;&gt;&gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Another developer has the heap-shot logs, I&#39;ll post those as<br>&gt;&gt;&gt; soon as<br>
&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; possible.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; David<br>&gt;&gt;&gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Alan McGovern wrote:<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Could you post up the detailed stats from heapshot? After the 12<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; hour
<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; run, how much memory are you using? Are we talking in the<br>&gt;&gt;&gt; gigabyte<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; range, or megabyte range?<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Alan.<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;
<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; On 7/18/07, *David Wolinsky* &lt;<a href="mailto:davidiw@ufl.edu">davidiw@ufl.edu</a><br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mailto:<a href="mailto:davidiw@ufl.edu">davidiw@ufl.edu</a>&gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; &lt;mailto:
<a href="mailto:davidiw@ufl.edu">davidiw@ufl.edu</a> &lt;mailto:<a href="mailto:davidiw@ufl.edu">davidiw@ufl.edu</a>&gt;&gt;&gt; wrote:<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; My lab works on a peer-to-peer network overlay and we&#39;ve
<br>&gt;&gt;&gt; noticed<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; recently significant memory issues.&nbsp;&nbsp;Some background...<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; This application is constantly creating new objects and<br>
&gt;&gt;&gt; shortly<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; thereafter deleting (removing reference to) them<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Using a sample run with 150 threads running...<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Mono on Linux has a growth rate of ~25 KB per second with a
<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; base<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; of 50MB<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; (y = 25K *x + 50M)<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; .NET on Windows stabilizes at 35 MB<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; We ran heap-shot with Linux and found that in a 12 hour
<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; period it<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; reported this...<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; start:<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; objects: 58,823<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; heap memory: 6,838,426 bytes<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;
<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; end:<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; objects: 59,925<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; heap memory: 6,862,336<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; We have run mono with GC_MAXIMUM_HEAP_SIZE and the memory
<br>&gt;&gt;&gt; size<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; (RES) got<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; significantly bigger than it.<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; I have searched for the Compacting GC with no luck, we would
<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; really like<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; to see if it would help our problem.<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; The only operating system resources we&#39;re using are<br>
&gt;&gt;&gt; Sockets, but<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; we use<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; them VERY heavily!<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; If anyone has any suggestions, we&#39;d be open to test out
<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; anything<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; at this<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; point!<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; We are leaning towards an issue in unmanaged memory and<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; possibly a bug
<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; in mono.<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Best regards,<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; David<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; ps, I fwded this to gc and devel list because gc list looks
<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; quite<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; dead.... sorry for the duplication<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; _______________________________________________<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Mono-devel-list mailing list
<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; <a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mailto:<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com
</a>&gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mailto:<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mailto:<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com
</a>&gt;&gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>
&gt;&gt;&gt;<br>&gt;&gt;&gt;<br>&gt;&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; _______________________________________________<br>&gt;&gt; Mono-gc-list maillist&nbsp;&nbsp;-&nbsp;&nbsp;<a href="mailto:Mono-gc-list@lists.ximian.com">Mono-gc-list@lists.ximian.com
</a><br>&gt;&gt; <a href="http://lists.ximian.com/mailman/listinfo/mono-gc-list">http://lists.ximian.com/mailman/listinfo/mono-gc-list</a><br>&gt;&gt;<br>&gt;&gt;<br>&gt;<br>&gt;<br><br></blockquote></div><br>