From lucene-net-dev-return-1149-apmail-incubator-lucene-net-dev-archive=incubator.apache.org@incubator.apache.org Wed Jan 09 12:33:20 2008 Return-Path: Delivered-To: apmail-incubator-lucene-net-dev-archive@locus.apache.org Received: (qmail 22595 invoked from network); 9 Jan 2008 12:33:20 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 9 Jan 2008 12:33:20 -0000 Received: (qmail 12968 invoked by uid 500); 9 Jan 2008 12:33:09 -0000 Delivered-To: apmail-incubator-lucene-net-dev-archive@incubator.apache.org Received: (qmail 12943 invoked by uid 500); 9 Jan 2008 12:33:09 -0000 Mailing-List: contact lucene-net-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: lucene-net-dev@incubator.apache.org Delivered-To: mailing list lucene-net-dev@incubator.apache.org Received: (qmail 12934 invoked by uid 99); 9 Jan 2008 12:33:09 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Jan 2008 04:33:09 -0800 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Jan 2008 12:32:53 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 108E0714236 for ; Wed, 9 Jan 2008 04:32:43 -0800 (PST) Message-ID: <14934768.1199881963064.JavaMail.jira@brutus> Date: Wed, 9 Jan 2008 04:32:43 -0800 (PST) From: "Marco Dissel (JIRA)" To: lucene-net-dev@incubator.apache.org Subject: [jira] Issue Comment Edited: (LUCENENET-106) Lucene.NET (Revision: 603121) is leaking memory In-Reply-To: <12552873.1198862563409.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/LUCENENET-106?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12557244#action_12557244 ] mdissel edited comment on LUCENENET-106 at 1/9/08 4:31 AM: ---------------------------------------------------------------- I got another serious memory leak. This is the result from DebugDiag tool. The patch in this issue doesn't solve this one.. Anyone solved this already? (doing a seach with a custom sort) Is this line the problem in the FieldCacheImpl? class Cache.Get // innerCache = new System.Collections.Hashtable(); // shouldn't this be WeakHashtable()??? // [DEFAULT] [hasThis] Object Lucene.Net.Search.FieldCacheImpl/AnonymousClassCache3.CreateValue(Class Lucene.Net.Index.IndexReader,Object) 0xC920F4 [DEFAULT] [hasThis] Object Lucene.Net.Search.FieldCacheImpl/Cache.Get(Class Lucene.Net.Index.IndexReader,Object) [DEFAULT] [hasThis] Class Lucene.Net.Search.StringIndex Lucene.Net.Search.FieldCacheImpl.GetStringIndex(Class Lucene.Net.Index.IndexReader,String) [DEFAULT] [hasThis] Object Lucene.Net.Search.FieldCacheImpl/AnonymousClassCache4.CreateValue(Class Lucene.Net.Index.IndexReader,Object) [DEFAULT] [hasThis] Object Lucene.Net.Search.FieldCacheImpl/Cache.Get(Class Lucene.Net.Index.IndexReader,Object) [DEFAULT] [hasThis] Object Lucene.Net.Search.FieldCacheImpl.GetAuto(Class Lucene.Net.Index.IndexReader,String) [DEFAULT] Class Lucene.Net.Search.ScoreDocComparator Lucene.Net.Search.FieldSortedHitQueue.ComparatorAuto(Class Lucene.Net.Index.IndexReader,String) [DEFAULT] [hasThis] Object Lucene.Net.Search.FieldSortedHitQueue/AnonymousClassCache.CreateValue(Class Lucene.Net.Index.IndexReader,Object) [DEFAULT] Class Lucene.Net.Search.ScoreDocComparator Lucene.Net.Search.FieldSortedHitQueue.ComparatorAuto(Class Lucene.Net.Index.IndexReader,String) [DEFAULT] [hasThis] Object Lucene.Net.Search.FieldCacheImpl/Cache.Get(Class Lucene.Net.Index.IndexReader,Object) [DEFAULT] Class Lucene.Net.Search.ScoreDocComparator Lucene.Net.Search.FieldSortedHitQueue.GetCachedComparator(Class Lucene.Net.Index.IndexReader,String,I4,Class System.Globalization.CultureInfo,Class Lucene.Net.Search.SortComparatorSource) [DEFAULT] [hasThis] Void Lucene.Net.Search.FieldSortedHitQueue..ctor(Class Lucene.Net.Index.IndexReader,SZArray Class Lucene.Net.Search.SortField,I4) [DEFAULT] Class Lucene.Net.Search.ScoreDocComparator Lucene.Net.Search.FieldSortedHitQueue.GetCachedComparator(Class Lucene.Net.Index.IndexReader,String,I4,Class System.Globalization.CultureInfo,Class Lucene.Net.Search.SortComparatorSource) [DEFAULT] [hasThis] Class Lucene.Net.Search.TopFieldDocs Lucene.Net.Search.IndexSearcher.Search(Class Lucene.Net.Search.Weight,Class Lucene.Net.Search.Filter,I4,Class Lucene.Net.Search.Sort) [DEFAULT] [hasThis] Void Lucene.Net.Search.FieldSortedHitQueue..ctor(Class Lucene.Net.Index.IndexReader,SZArray Class Lucene.Net.Search.SortField,I4) [DEFAULT] [hasThis] Class Lucene.Net.Search.TopFieldDocs Lucene.Net.Search.Searcher.Search(Class Lucene.Net.Search.Query,Class Lucene.Net.Search.Filter,I4,Class Lucene.Net.Search.Sort) was (Author: mdissel): I got another serious memory leak. This is the result from DebugDiag tool. The attached patched doesn't solve this one.. Anyone solved this already? Is this line the problem in the FieldCacheImpl? class Cache.Get // innerCache = new System.Collections.Hashtable(); // shouldn't this be WeakHashtable()??? // [DEFAULT] [hasThis] Object Lucene.Net.Search.FieldCacheImpl/AnonymousClassCache3.CreateValue(Class Lucene.Net.Index.IndexReader,Object) 0xC920F4 [DEFAULT] [hasThis] Object Lucene.Net.Search.FieldCacheImpl/Cache.Get(Class Lucene.Net.Index.IndexReader,Object) [DEFAULT] [hasThis] Class Lucene.Net.Search.StringIndex Lucene.Net.Search.FieldCacheImpl.GetStringIndex(Class Lucene.Net.Index.IndexReader,String) [DEFAULT] [hasThis] Object Lucene.Net.Search.FieldCacheImpl/AnonymousClassCache4.CreateValue(Class Lucene.Net.Index.IndexReader,Object) [DEFAULT] [hasThis] Object Lucene.Net.Search.FieldCacheImpl/Cache.Get(Class Lucene.Net.Index.IndexReader,Object) [DEFAULT] [hasThis] Object Lucene.Net.Search.FieldCacheImpl.GetAuto(Class Lucene.Net.Index.IndexReader,String) [DEFAULT] Class Lucene.Net.Search.ScoreDocComparator Lucene.Net.Search.FieldSortedHitQueue.ComparatorAuto(Class Lucene.Net.Index.IndexReader,String) [DEFAULT] [hasThis] Object Lucene.Net.Search.FieldSortedHitQueue/AnonymousClassCache.CreateValue(Class Lucene.Net.Index.IndexReader,Object) [DEFAULT] Class Lucene.Net.Search.ScoreDocComparator Lucene.Net.Search.FieldSortedHitQueue.ComparatorAuto(Class Lucene.Net.Index.IndexReader,String) [DEFAULT] [hasThis] Object Lucene.Net.Search.FieldCacheImpl/Cache.Get(Class Lucene.Net.Index.IndexReader,Object) [DEFAULT] Class Lucene.Net.Search.ScoreDocComparator Lucene.Net.Search.FieldSortedHitQueue.GetCachedComparator(Class Lucene.Net.Index.IndexReader,String,I4,Class System.Globalization.CultureInfo,Class Lucene.Net.Search.SortComparatorSource) [DEFAULT] [hasThis] Void Lucene.Net.Search.FieldSortedHitQueue..ctor(Class Lucene.Net.Index.IndexReader,SZArray Class Lucene.Net.Search.SortField,I4) [DEFAULT] Class Lucene.Net.Search.ScoreDocComparator Lucene.Net.Search.FieldSortedHitQueue.GetCachedComparator(Class Lucene.Net.Index.IndexReader,String,I4,Class System.Globalization.CultureInfo,Class Lucene.Net.Search.SortComparatorSource) [DEFAULT] [hasThis] Class Lucene.Net.Search.TopFieldDocs Lucene.Net.Search.IndexSearcher.Search(Class Lucene.Net.Search.Weight,Class Lucene.Net.Search.Filter,I4,Class Lucene.Net.Search.Sort) [DEFAULT] [hasThis] Void Lucene.Net.Search.FieldSortedHitQueue..ctor(Class Lucene.Net.Index.IndexReader,SZArray Class Lucene.Net.Search.SortField,I4) [DEFAULT] [hasThis] Class Lucene.Net.Search.TopFieldDocs Lucene.Net.Search.Searcher.Search(Class Lucene.Net.Search.Query,Class Lucene.Net.Search.Filter,I4,Class Lucene.Net.Search.Sort) > Lucene.NET (Revision: 603121) is leaking memory > ----------------------------------------------- > > Key: LUCENENET-106 > URL: https://issues.apache.org/jira/browse/LUCENENET-106 > Project: Lucene.Net > Issue Type: Bug > Environment: .NET 2.0 > Reporter: Anton K. > Priority: Critical > Attachments: DIGY-FieldCacheImpl.patch, Digy.rar, luceneSrc_memUsage.patch, WeakHashTable+FieldCacheImpl.rar, WeakReferences.rar > > > readerCache Hashtable field (see FieldCacheImpl.cs) never releases some hash items that have closed IndexReader object as a key. So a lot of Term instances are never released. > Java version of Lucene uses WeakHashMap and therefore doesn't have this problem. > This bug can be reproduced only when Sort functionality used during search. > See following link for additional information. > http://www.gossamer-threads.com/lists/lucene/java-user/55681 > Steps to reproduce: > 1)Create index > 2) Modify index by IndexWiter; Close IndexWriter > 3) Use IndexSearcher for searching with Sort; Close InexSearcher > 4) Go to step 2 > You'll get OutOfMemoryException after some time of running this algorithm. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.