Hi Ben and all, Thanks for the pointer Ben!
Removing the two unused (read: empty) finalizers from SegmentReder.cs as well as TerminfoReader.cs eliminated the leak -- completely. This makes me believe that .NET 1.1 has a bug and that this was not a Lucene.Net issue (specially when the same code, without removing those empty finalizers works with .NET 2.0) Over the next few days, I will run the NUnit test (I don't expect anything to break) and will release this fix for Lucene.Net 1.9, 1.9.1 and 2.0 Regards, -- George Aroush -----Original Message----- From: Ben Tregenna [mailto:[EMAIL PROTECTED] Sent: Monday, September 25, 2006 12:01 PM To: [email protected] Subject: Re: Memory leak (was: RE: Lucene.Net Indexing Large Databases) George Aroush wrote: >Hi Michael, > >That is right. If you take the current code as-is (without the change >to >Close() as I mentioned earlier) of Lucene.Net 1.9, 1.9.1 and 2.0 and >compile them using .NET 2.0, you will not see any leak! > >What's even more puzzling to me is this. If I add the following code: > > ~RAMOutputStream() > { > file = null; > } > >To the class Lucene.Net.Store.RAMOutputStream, the leak more then doubles!! > > Seems similar to my observation that removing the (unused) finaliser for TermInfosReader halved the memory leak. I have to say the logic of the finaliser in C# isn't one of my strong suits but I'm still poking around in the code occassionally as and when I get the time... Ben
