You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Robert Muir (JIRA)" <ji...@apache.org> on 2014/05/11 00:06:57 UTC

[jira] [Resolved] (LUCENE-5656) IndexWriter leaks CFS handles in some exceptional cases

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

Robert Muir resolved LUCENE-5656.
---------------------------------

       Resolution: Fixed
    Fix Version/s: 5.0
                   4.9
                   4.8.1

Shai spotted this easily, I committed!

> IndexWriter leaks CFS handles in some exceptional cases
> -------------------------------------------------------
>
>                 Key: LUCENE-5656
>                 URL: https://issues.apache.org/jira/browse/LUCENE-5656
>             Project: Lucene - Core
>          Issue Type: Bug
>    Affects Versions: 4.8.1
>            Reporter: Robert Muir
>             Fix For: 4.8.1, 4.9, 5.0
>
>
> in trunk:
> ant test  -Dtestcase=TestIndexWriterOutOfMemory -Dtests.method=testBasics -Dtests.seed=3D485DE153FCA22D -Dtests.nightly=true -Dtests.locale=no_NO -Dtests.timezone=CAT -Dtests.file.encoding=US-ASCII
> Seems to happen when an exception is thrown here:
> {noformat}
>    [junit4]   1> java.lang.OutOfMemoryError: Fake OutOfMemoryError
>    [junit4]   1> 	at org.apache.lucene.index.TestIndexWriterOutOfMemory$2.eval(TestIndexWriterOutOfMemory.java:117)
>    [junit4]   1> 	at org.apache.lucene.store.MockDirectoryWrapper.maybeThrowDeterministicException(MockDirectoryWrapper.java:888)
>    [junit4]   1> 	at org.apache.lucene.store.MockDirectoryWrapper.openInput(MockDirectoryWrapper.java:575)
>    [junit4]   1> 	at org.apache.lucene.store.Directory.openChecksumInput(Directory.java:107)
>    [junit4]   1> 	at org.apache.lucene.codecs.lucene45.Lucene45DocValuesProducer.<init>(Lucene45DocValuesProducer.java:84)
>    [junit4]   1> 	at org.apache.lucene.codecs.lucene45.Lucene45DocValuesFormat.fieldsProducer(Lucene45DocValuesFormat.java:178)
>    [junit4]   1> 	at org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat$FieldsReader.<init>(PerFieldDocValuesFormat.java:232)
>    [junit4]   1> 	at org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat.fieldsProducer(PerFieldDocValuesFormat.java:324)
>    [junit4]   1> 	at org.apache.lucene.index.SegmentDocValues.newDocValuesProducer(SegmentDocValues.java:51)
>    [junit4]   1> 	at org.apache.lucene.index.SegmentDocValues.getDocValuesProducer(SegmentDocValues.java:68)
>    [junit4]   1> 	at org.apache.lucene.index.SegmentReader.initDocValuesProducers(SegmentReader.java:189)
>    [junit4]   1> 	at org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:166)
>    [junit4]   1> 	at org.apache.lucene.index.ReadersAndUpdates.writeFieldUpdates(ReadersAndUpdates.java:553)
>    [junit4]   1> 	at org.apache.lucene.index.BufferedUpdatesStream.applyDeletesAndUpdates(BufferedUpdatesStream.java:230)
>    [junit4]   1> 	at org.apache.lucene.index.IndexWriter.applyAllDeletesAndUpdates(IndexWriter.java:3086)
>    [junit4]   1> 	at org.apache.lucene.index.IndexWriter.maybeApplyDeletes(IndexWriter.java:3077)
>    [junit4]   1> 	at org.apache.lucene.index.IndexWriter.prepareCommitInternal(IndexWriter.java:2791)
>    [junit4]   1> 	at org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:2940)
>    [junit4]   1> 	at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:2907)
> {noformat}
> and the leak is from here:
> {noformat}
>    [junit4]    > Caused by: java.lang.RuntimeException: unclosed IndexInput: _0_Asserting_0.dvd
>    [junit4]    > 	at org.apache.lucene.store.MockDirectoryWrapper.addFileHandle(MockDirectoryWrapper.java:560)
>    [junit4]    > 	at org.apache.lucene.store.MockDirectoryWrapper.openInput(MockDirectoryWrapper.java:604)
>    [junit4]    > 	at org.apache.lucene.codecs.lucene45.Lucene45DocValuesProducer.<init>(Lucene45DocValuesProducer.java:116)
>    [junit4]    > 	at org.apache.lucene.codecs.lucene45.Lucene45DocValuesFormat.fieldsProducer(Lucene45DocValuesFormat.java:178)
>    [junit4]    > 	at org.apache.lucene.codecs.asserting.AssertingDocValuesFormat.fieldsProducer(AssertingDocValuesFormat.java:61)
>    [junit4]    > 	at org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat$FieldsReader.<init>(PerFieldDocValuesFormat.java:232)
>    [junit4]    > 	at org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat.fieldsProducer(PerFieldDocValuesFormat.java:324)
>    [junit4]    > 	at org.apache.lucene.index.SegmentDocValues.newDocValuesProducer(SegmentDocValues.java:51)
>    [junit4]    > 	at org.apache.lucene.index.SegmentDocValues.getDocValuesProducer(SegmentDocValues.java:68)
>    [junit4]    > 	at org.apache.lucene.index.SegmentReader.initDocValuesProducers(SegmentReader.java:189)
>    [junit4]    > 	at org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:116)
>    [junit4]    > 	at org.apache.lucene.index.ReadersAndUpdates.getReader(ReadersAndUpdates.java:133)
>    [junit4]    > 	at org.apache.lucene.index.BufferedUpdatesStream.applyDeletesAndUpdates(BufferedUpdatesStream.java:211)
>    [junit4]    > 	at org.apache.lucene.index.IndexWriter.applyAllDeletesAndUpdates(IndexWriter.java:3086)
>    [junit4]    > 	at org.apache.lucene.index.IndexWriter.maybeApplyDeletes(IndexWriter.java:3077)
>    [junit4]    > 	at org.apache.lucene.index.IndexWriter.prepareCommitInternal(IndexWriter.java:2791)
>    [junit4]    > 	at org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:2940)
>    [junit4]    > 	at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:2907)
>    [junit4]    > 	at org.apache.lucene.index.TestIndexWriterOutOfMemory.testBasics(TestIndexWriterOutOfMemory.java:209)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

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