You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Martin Amirault (JIRA)" <ji...@apache.org> on 2017/05/16 02:13:04 UTC

[jira] [Comment Edited] (LUCENE-7822) IllegalArgumentException thrown instead of a CorruptIndexException

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

Martin Amirault edited comment on LUCENE-7822 at 5/16/17 2:12 AM:
------------------------------------------------------------------

Created a patch for master branch, along with a test to reproduce the problem.

Actually the code doing the checksum was here, just not called in a finally clause.


was (Author: marumarutan):
Created a patch for master branch, along with a test to reproduce the problem.

Actually the code for doing the checksum was here, just not called in a finally clause.

> IllegalArgumentException thrown instead of a CorruptIndexException
> ------------------------------------------------------------------
>
>                 Key: LUCENE-7822
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7822
>             Project: Lucene - Core
>          Issue Type: Bug
>    Affects Versions: 6.5.1
>            Reporter: Martin Amirault
>            Priority: Minor
>         Attachments: LUCENE-7822.patch
>
>
> Similarly to LUCENE-7592 , When an {{*.si}} file is corrupted on very specific part an IllegalArgumentException is thrown instead of a CorruptIndexException.
> StackTrace (Lucene 6.5.1):
> {code}
> java.lang.IllegalArgumentException: Illegal minor version: 12517381
> 	at __randomizedtesting.SeedInfo.seed([1FEB5987CFA44BE:B8755B5574F9F3BF]:0)
> 	at org.apache.lucene.util.Version.<init>(Version.java:385)
> 	at org.apache.lucene.util.Version.<init>(Version.java:371)
> 	at org.apache.lucene.util.Version.fromBits(Version.java:353)
> 	at org.apache.lucene.codecs.lucene62.Lucene62SegmentInfoFormat.read(Lucene62SegmentInfoFormat.java:97)
> 	at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:357)
> 	at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:288)
> 	at org.apache.lucene.index.SegmentInfos$1.doBody(SegmentInfos.java:448)
> 	at org.apache.lucene.index.SegmentInfos$1.doBody(SegmentInfos.java:445)
> 	at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:692)
> 	at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:644)
> 	at org.apache.lucene.index.SegmentInfos.readLatestCommit(SegmentInfos.java:450)
> 	at org.apache.lucene.index.DirectoryReader.listCommits(DirectoryReader.java:260)
> {code}
> Simple fix would be to add IllegalArgumentException to the catch list at 
> {{org/apache/lucene/index/SegmentInfos.java:289}}
> Other variations for the stacktraces:
> {code}
> java.lang.IllegalArgumentException: invalid codec filename '_�.cfs', must match: _[a-z0-9]+(_.*)?\..*
> 	at __randomizedtesting.SeedInfo.seed([8B3FDE317B8D634A:A8EE07E5EB4B0B13]:0)
> 	at org.apache.lucene.index.SegmentInfo.checkFileNames(SegmentInfo.java:270)
> 	at org.apache.lucene.index.SegmentInfo.addFiles(SegmentInfo.java:252)
> 	at org.apache.lucene.index.SegmentInfo.setFiles(SegmentInfo.java:246)
> 	at org.apache.lucene.codecs.lucene62.Lucene62SegmentInfoFormat.read(Lucene62SegmentInfoFormat.java:248)
> 	at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:357)
> 	at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:288)
> 	at org.apache.lucene.index.SegmentInfos$1.doBody(SegmentInfos.java:448)
> 	at org.apache.lucene.index.SegmentInfos$1.doBody(SegmentInfos.java:445)
> 	at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:692)
> 	at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:644)
> 	at org.apache.lucene.index.SegmentInfos.readLatestCommit(SegmentInfos.java:450)
> 	at org.apache.lucene.index.DirectoryReader.listCommits(DirectoryReader.java:260)
> {code}
> {code}
> java.lang.IllegalArgumentException: An SPI class of type org.apache.lucene.codecs.Codec with name 'LucenI62' does not exist.  You need to add the corresponding JAR file supporting this SPI to your classpath.  The current classpath supports the following names: [Lucene62, Lucene50, Lucene53, Lucene54, Lucene60]
> 	at __randomizedtesting.SeedInfo.seed([925DE160F7260F99:B026EB9373CB6368]:0)
> 	at org.apache.lucene.util.NamedSPILoader.lookup(NamedSPILoader.java:116)
> 	at org.apache.lucene.codecs.Codec.forName(Codec.java:116)
> 	at org.apache.lucene.index.SegmentInfos.readCodec(SegmentInfos.java:424)
> 	at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:356)
> 	at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:288)
> 	at org.apache.lucene.index.SegmentInfos$1.doBody(SegmentInfos.java:448)
> 	at org.apache.lucene.index.SegmentInfos$1.doBody(SegmentInfos.java:445)
> 	at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:692)
> 	at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:644)
> 	at org.apache.lucene.index.SegmentInfos.readLatestCommit(SegmentInfos.java:450)
> 	at org.apache.lucene.index.DirectoryReader.listCommits(DirectoryReader.java:260)
> {code}



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

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