[Mono-bugs] [Bug 53177][Nor] Changed - WaitHandles are not finalizing
Fri, 30 Jan 2004 11:36:41 -0500 (EST)
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by firstname.lastname@example.org.
--- shadow/53177 2004-01-30 11:35:35.000000000 -0500
+++ shadow/53177.tmp.23533 2004-01-30 11:36:41.000000000 -0500
@@ -470,6 +470,66 @@
------- Additional Comments From email@example.com 2004-01-26 23:15 -------
Created an attachment (id=6526)
Here is a minimum number of changes plus some GC_PRINT_STAT statements to follow what is happening. I mispoke earlier when I said I was using gcc. I was using msft vc7.
+------- Additional Comments From firstname.lastname@example.org 2004-01-30 11:36 -------
+From Hans Boehm=>
+Unfortunately, I can't really run code like this behind the HP firewall.
+I might be able to do it from home. (Should this work on WinME?)
+Did you try asking about this on the Mono mailing list?
+Based on the log files you sent, there appear to be two problems,
+1) The collector is seeing too many false pointers, causing it to
+pages they point to, and making it difficult for it to find anyplace
+new pages. This is causing the heap growth. (I think a call to
+in the execution would confirm this. The messages about "very large"
+objects which turn
+out not to be that big are very suggestive, as it stands.)
+This is almost certainly due to the collector getting insufficient
+which it presumably needs since you have a bunch of compressed data in
+which looks random. And I can reproduce logs similar to this aspect
+log with a simple test program that has similar characteristics.
+My reading of the Mono code is that recent versions (last few months
+should give the collector enough type information that this shouldn't
+be an issue.
+Again GC_dump() output could partially confirm that's working.
+Setting the ignore_off_page flag in your patch largely circumvents
+but that's not a great solution.
+2) Your logs indicate that garbage collections often happen in rapid
+sometimes with no allocation between collections. I can't reproduce
+this in isolation.
+But I note that Mono contains explicit GC_gcollect() calls. I
+normally consider those
+somewhat suspect. It would be good to know what the call stack looks
+like for those
+collector invocations. (I think your Sleep() calls may avoid some of
+I would expect this to primarily slow things down. I think (1) is the
+My current assessment is that with fairly high probability, you are
+Mono issues, and not something I can address.