lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "George Aroush" <>
Subject RE: Memory leak (was: RE: Lucene.Net Indexing Large Databases)
Date Thu, 28 Sep 2006 17:51:04 GMT
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


-- George Aroush

-----Original Message-----
From: Ben Tregenna [] 
Sent: Monday, September 25, 2006 12:01 PM
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 
>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


View raw message