[ 
https://issues.apache.org/jira/browse/LUCENE-7662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858828#comment-15858828
 ] 

Michael McCandless commented on LUCENE-7662:
--------------------------------------------

Hmm something is still angry:

{noformat}
   [junit4] Suite: org.apache.lucene.index.TestMissingIndexFiles
   [junit4]   2> NOTE: reproduce with: ant test  
-Dtestcase=TestMissingIndexFiles -Dtests.method=testMissingDoc 
-Dtests.seed=4D7CBCD6B337257 -Dtests.locale=de-CH -Dtests.timezone=Etc/GMT-10 
-Dtests.asserts=true -Dtests.file.encoding=US-ASCII
   [junit4] FAILURE 0.04s J2 | TestMissingIndexFiles.testMissingDoc <<<
   [junit4]    > Throwable #1: junit.framework.AssertionFailedError: Expected 
exception CorruptIndexException
   [junit4]    >        at 
__randomizedtesting.SeedInfo.seed([4D7CBCD6B337257:6405AAA9369B3658]:0)
   [junit4]    >        at 
org.apache.lucene.util.LuceneTestCase.expectThrows(LuceneTestCase.java:2703)
   [junit4]    >        at 
org.apache.lucene.index.TestMissingIndexFiles.testMissingDoc(TestMissingIndexFiles.java:52)
   [junit4]    >        at java.lang.Thread.run(Thread.java:745)
   [junit4]    >        Suppressed: java.lang.RuntimeException: 
MockDirectoryWrapper: cannot close: there are still 1 open files: {_0.cfs=1}
   [junit4]    >                at 
org.apache.lucene.store.MockDirectoryWrapper.close(MockDirectoryWrapper.java:841)
   [junit4]    >                at 
org.apache.lucene.index.TestMissingIndexFiles.testMissingDoc(TestMissingIndexFiles.java:53)
   [junit4]    >                ... 36 more
   [junit4]    >        Caused by: java.lang.RuntimeException: unclosed 
IndexInput: _0.cfs
   [junit4]    >                at 
org.apache.lucene.store.MockDirectoryWrapper.addFileHandle(MockDirectoryWrapper.java:732)
   [junit4]    >                at 
org.apache.lucene.store.MockDirectoryWrapper.openInput(MockDirectoryWrapper.java:776)
   [junit4]    >                at 
org.apache.lucene.codecs.lucene50.Lucene50CompoundReader.<init>(Lucene50CompoundReader.java:78)
   [junit4]    >                at 
org.apache.lucene.codecs.lucene50.Lucene50CompoundFormat.getCompoundReader(Lucene50CompoundFormat.java:71)
   [junit4]    >                at 
org.apache.lucene.index.SegmentCoreReaders.<init>(SegmentCoreReaders.java:99)
   [junit4]    >                at 
org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:74)
   [junit4]    >                at 
org.apache.lucene.index.StandardDirectoryReader$1.doBody(StandardDirectoryReader.java:62)
   [junit4]    >                at 
org.apache.lucene.index.StandardDirectoryReader$1.doBody(StandardDirectoryReader.java:54)
   [junit4]    >                at 
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:666)
   [junit4]    >                at 
org.apache.lucene.index.StandardDirectoryReader.open(StandardDirectoryReader.java:77)
   [junit4]    >                at 
org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:63)
   [junit4]    >                at 
org.apache.lucene.index.TestMissingIndexFiles.lambda$testMissingDoc$0(TestMissingIndexFiles.java:52)
   [junit4]    >                at 
org.apache.lucene.util.LuceneTestCase.expectThrows(LuceneTestCase.java:2694)
   [junit4]    >                at 
org.apache.lucene.index.TestMissingIndexFiles.testMissingDoc(TestMissingIndexFiles.java:52)
   [junit4]    >                ... 36 more
{noformat}

> Index with missing files should throw CorruptIndexException
> -----------------------------------------------------------
>
>                 Key: LUCENE-7662
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7662
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: core/index
>    Affects Versions: 6.4
>            Reporter: Mike Drob
>         Attachments: LUCENE-7662.patch, LUCENE-7662.patch
>
>
> Similar to what we did in LUCENE-7592 for EOF, we should catch missing files 
> and rethrow those as CorruptIndexException.
> If a particular codec can handle missing files, it should be proactive check 
> for those optional files and not throw anything, so I think we can safely do 
> this at SegmentReader or SegmentCoreReaders level.
> Stack trace copied from SOLR-10006:
> {noformat}
> Caused by: java.nio.file.NoSuchFileException: 
> /Users/Erick/apache/solrVersions/trunk/solr/example/cloud/node3/solr/eoe_shard1_replica1/data/index/_1_Lucene50_0.doc
>       at 
> sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
>       at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
>       at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
>       at 
> sun.nio.fs.UnixFileSystemProvider.newFileChannel(UnixFileSystemProvider.java:177)
>       at java.nio.channels.FileChannel.open(FileChannel.java:287)
>       at java.nio.channels.FileChannel.open(FileChannel.java:335)
>       at 
> org.apache.lucene.store.MMapDirectory.openInput(MMapDirectory.java:238)
>       at 
> org.apache.lucene.store.NRTCachingDirectory.openInput(NRTCachingDirectory.java:192)
>       at 
> org.apache.solr.core.MetricsDirectoryFactory$MetricsDirectory.openInput(MetricsDirectoryFactory.java:334)
>       at 
> org.apache.lucene.codecs.lucene50.Lucene50PostingsReader.<init>(Lucene50PostingsReader.java:81)
>       at 
> org.apache.lucene.codecs.lucene50.Lucene50PostingsFormat.fieldsProducer(Lucene50PostingsFormat.java:442)
>       at 
> org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsReader.<init>(PerFieldPostingsFormat.java:292)
>       at 
> org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.fieldsProducer(PerFieldPostingsFormat.java:372)
>       at 
> org.apache.lucene.index.SegmentCoreReaders.<init>(SegmentCoreReaders.java:109)
>       at org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:74)
>       at 
> org.apache.lucene.index.ReadersAndUpdates.getReader(ReadersAndUpdates.java:143)
>       at 
> org.apache.lucene.index.ReadersAndUpdates.getReadOnlyClone(ReadersAndUpdates.java:195)
>       at 
> org.apache.lucene.index.StandardDirectoryReader.open(StandardDirectoryReader.java:103)
>       at org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:473)
>       at 
> org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:103)
>       at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:79)
>       at 
> org.apache.solr.core.StandardIndexReaderFactory.newReader(StandardIndexReaderFactory.java:39)
>       at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1958)
>       ... 12 more
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

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

Reply via email to