[Mono-bugs] [Bug 621899] New: GC / memory leak in conjunction with F#, GC appears to lock-up in infinite loop

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Jul 13 10:07:33 EDT 2010


http://bugzilla.novell.com/show_bug.cgi?id=621899

http://bugzilla.novell.com/show_bug.cgi?id=621899#c0


           Summary: GC / memory leak in conjunction with F#, GC appears to
                    lock-up in infinite loop
    Classification: Mono
           Product: Mono: Runtime
           Version: 2.6.x
          Platform: All
        OS/Version: Mac OS X 10.6
            Status: NEW
          Severity: Critical
          Priority: P5 - None
         Component: GC
        AssignedTo: lupus at novell.com
        ReportedBy: jonathan.shore at gmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


Created an attachment (id=375587)
 --> (http://bugzilla.novell.com/attachment.cgi?id=375587)
Source and exe for test

User-Agent:       Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US)
AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4

GC fails to clean up dereferenced dictionaries on each loop of a simple f#
based test.   Result is heap going to max, followed by sub-system (possibly GC)
going to 100% cpu indefinitely.   

Test is a loop that creates a dictionary 10 times and loads 1e6 elements on
each iteration.   Expectation is that the unused dictionary will be GC'ed post
iteration.

GC appears not to recognize the dictionary as garbage and/or may be a more
subtle problem with the interaction of GC and f# on mono.    This simple
program works as expected on MS.NET.

Program source and exe enclosed. 

Reproducible: Always

Steps to Reproduce:
1. Run attached program
2. heap size goes to 2 GB
3. depending on available memory, either throws out of memory exception or
sub-system loops infinitely at 100% cpu
Actual Results:  
- First 5 cycles of test run as expected (but with no GC on created and
discarded dictionary)
- On 6th cycle looks as if GC or subsystem goes to 100% cpu and nothing
progresses

- Jon Harrop reports that this program causes an out of memory exception on
Mono 2.4.   On 2.6 on my box it simply goes to 100 cpu indefinitely.

Expected Results:  
- the test should run to completion after 10 iterations
- on each iteration, GC should clean up the unreferenced dictionary (more or
less)
- heap size should not grow to max before GC kicks in

- suspect somehow the GC does not see the dictionaries as being garbage

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list