Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-7822

IllegalArgumentException thrown instead of a CorruptIndexException

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 6.5.1
    • Fix Version/s: 8.6
    • Component/s: None
    • Labels:
      None
    • Lucene Fields:
      New

      Description

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

      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)
      

      Simple fix would be to add IllegalArgumentException to the catch list at
      org/apache/lucene/index/SegmentInfos.java:289

      Other variations for the stacktraces:

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

        Attachments

        1. LUCENE-7822.patch
          7 kB
          Martin Amirault

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                marumarutan Martin Amirault
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 0.5h
                  0.5h