You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Michael McCandless (JIRA)" <ji...@apache.org> on 2011/08/31 11:59:10 UTC

[jira] [Assigned] (LUCENE-3409) NRT reader/writer over RAMDirectory memory leak

     [ https://issues.apache.org/jira/browse/LUCENE-3409?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael McCandless reassigned LUCENE-3409:
------------------------------------------

    Assignee: Michael McCandless

> NRT reader/writer over RAMDirectory memory leak
> -----------------------------------------------
>
>                 Key: LUCENE-3409
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3409
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: core/index
>    Affects Versions: 3.0.2, 3.3
>            Reporter: tal steier
>            Assignee: Michael McCandless
>
> with NRT reader/writer, emptying an index using:
> writer.deleteAll()
> writer.commit()
> doesn't release all allocated memory.
> for example the following code will generate a memory leak:
> /**
> 	 * Reveals a memory leak in NRT reader/writer<br>
> 	 * 
> 	 * The following main() does 10K cycles of:
> 	 * <ul>
> 	 * <li>Add 10K empty documents to index writer</li>
> 	 * <li>commit()</li>
> 	 * <li>open NRT reader over the writer, and immediately close it</li>
> 	 * <li>delete all documents from the writer</li>
> 	 * <li>commit changes to the writer</li>
> 	 * </ul>
> 	 * 
> 	 * Running with -Xmx256M results in an OOME after ~2600 cycles
> 	 */
> 	public static void main(String[] args) throws Exception {
> 		RAMDirectory d = new RAMDirectory();
> 		IndexWriter w = new IndexWriter(d, new IndexWriterConfig(Version.LUCENE_33, new KeywordAnalyzer()));
> 		Document doc = new Document();
> 		
> 		for(int i = 0; i < 10000; i++) {
> 			for(int j = 0; j < 10000; ++j) {
> 				w.addDocument(doc);
> 			}
> 			w.commit();
> 			IndexReader.open(w, true).close();
> 			w.deleteAll();
> 			w.commit();
> 		}
> 		
> 		w.close();
> 		d.close();
> 	}	

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org