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

Mike Drob commented on LUCENE-7662:
-----------------------------------

Those are good suggestions, I'll get them into the next version of this patch.

Looking at the code in MockDirectoryWrapper, some of the "a random IOException" 
stuff looks really hackish, especially where we are checking for string 
messages to match. I'm uncomfortable with how brittle some of that is. We 
already have FakeIOException available and I think it would be good to use that 
instead in several places. Do you think we should handle that here, or I can 
file a new issue for it.

> 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
>
>
> 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