[ https://issues.apache.org/jira/browse/LUCENE-8525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16736498#comment-16736498 ]
Robert Muir commented on LUCENE-8525: ------------------------------------- Lucene doesn't know if its temporary or permanent either. All we know is symptom. We don't know why we hit EOF prematurely, just that we hit EOF prematurely. It could be because the file was truncated, but it could also be because some bits in a 'length' field were wrong (which is one reason why its helpful to have sanity checks for that). If the bits were wrong, we don't know why. Maybe its just a hardware memory issue, maybe hotspot compiled the code wrong, maybe its a bug in lucene code, maybe its something else. So I think if we hit EOF, the correct thing to do is throw EOFException, thats as specific as it gets. > throw more specific exception on data corruption > ------------------------------------------------ > > Key: LUCENE-8525 > URL: https://issues.apache.org/jira/browse/LUCENE-8525 > Project: Lucene - Core > Issue Type: Improvement > Reporter: Vladimir Dolzhenko > Priority: Major > > DataInput throws generic IOException if data looks odd > [DataInput:141|https://github.com/apache/lucene-solr/blob/1d85cd783863f75cea133fb9c452302214165a4d/lucene/core/src/java/org/apache/lucene/store/DataInput.java#L141] > there are other examples like > [BufferedIndexInput:219|https://github.com/apache/lucene-solr/blob/1d85cd783863f75cea133fb9c452302214165a4d/lucene/core/src/java/org/apache/lucene/store/BufferedIndexInput.java#L219], > > [CompressionMode:226|https://github.com/apache/lucene-solr/blob/1d85cd783863f75cea133fb9c452302214165a4d/lucene/core/src/java/org/apache/lucene/codecs/compressing/CompressionMode.java#L226] > and maybe > [DocIdsWriter:81|https://github.com/apache/lucene-solr/blob/1d85cd783863f75cea133fb9c452302214165a4d/lucene/core/src/java/org/apache/lucene/util/bkd/DocIdsWriter.java#L81] > That leads to some difficulties - see [elasticsearch > #34322|https://github.com/elastic/elasticsearch/issues/34322] > It would be better if it throws more specific exception. > As a consequence > [SegmentInfos.readCommit|https://github.com/apache/lucene-solr/blob/1d85cd783863f75cea133fb9c452302214165a4d/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java#L281] > violates its own contract > {code:java} > /** > * @throws CorruptIndexException if the index is corrupt > * @throws IOException if there is a low-level IO error > */ > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org