lucenenet-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Mitiaguin" <mitiag...@gmail.com>
Subject Re: Memory leak (was: RE: Lucene.Net Indexing Large Databases)
Date Fri, 29 Sep 2006 00:50:55 GMT
George ,

I have had it commented for several months ,  and thought  had it reported
since I had a problem in case of Net 2 as well,  when COM Interop is
involved ( C# DLL called from COM client ).  Didn't realize that it was
empty, other than removed. But it is better to remove completely .

Michael

/*
        ~TermInfosReader()
        {
            try
            {
                // patch for pre-1.4.2 JVMs, whose ThreadLocals leak
                System.Threading.Thread.SetData(enumerators, null);     //
{{Aroush-1.9}} is this required for .NET ?!
            }
            catch (Exception)
            {
            }
        }
*/


On 9/29/06, George Aroush <george@aroush.net> wrote:
>
> 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:lucene@rekenys.com]
> Sent: Monday, September 25, 2006 12:01 PM
> To: lucene-net-dev@incubator.apache.org
> 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
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message