Details
-
Bug
-
Resolution: Fixed
-
Highest
-
3.7, 3.7.1
-
3.07
-
Description
Something in 3.7 causes the error reported at - http://issues.apache.org/jira/browse/LUCENE-140
It occurs in two places, inside IndexWriter.addDocument():
java.lang.IllegalStateException: docs out of order at org.apache.lucene.index.SegmentMerger.appendPostings([Lorg/apache/lucene/index/SegmentMergeInfo;I)I(Optimized Method) at org.apache.lucene.index.SegmentMerger.mergeTermInfo([Lorg/apache/lucene/index/SegmentMergeInfo;I)V(Optimized Method) at org.apache.lucene.index.SegmentMerger.mergeTermInfos()V(Optimized Method) at org.apache.lucene.index.SegmentMerger.mergeTerms()V(Optimized Method) at org.apache.lucene.index.SegmentMerger.merge()I(Optimized Method) at org.apache.lucene.index.IndexWriter.mergeSegments(II)V(IndexWriter.java:681) at org.apache.lucene.index.IndexWriter.mergeSegments(I)V(IndexWriter.java:658) at org.apache.lucene.index.IndexWriter.maybeMergeSegments()V(IndexWriter.java:646) at org.apache.lucene.index.IndexWriter.addDocument(Lorg/apache/lucene/document/Document;Lorg/apache/lucene/analysis/Analyzer;)V(IndexWriter.java:453) at org.apache.lucene.index.IndexWriter.addDocument(Lorg/apache/lucene/document/Document;)V(IndexWriter.java:436)
and inside IndexWriter.close():
java.lang.IllegalStateException: docs out of order at org.apache.lucene.index.SegmentMerger.appendPostings([Lorg/apache/lucene/index/SegmentMergeInfo;I)I(Optimized Method) at org.apache.lucene.index.SegmentMerger.mergeTermInfo([Lorg/apache/lucene/index/SegmentMergeInfo;I)V(Optimized Method) at org.apache.lucene.index.SegmentMerger.mergeTermInfos()V(Optimized Method) at org.apache.lucene.index.SegmentMerger.mergeTerms()V(Optimized Method) at org.apache.lucene.index.SegmentMerger.merge()I(Optimized Method) at org.apache.lucene.index.IndexWriter.mergeSegments(II)V(IndexWriter.java:681) at org.apache.lucene.index.IndexWriter.mergeSegments(I)V(IndexWriter.java:658) at org.apache.lucene.index.IndexWriter.flushRamSegments()V(IndexWriter.java:628) at org.apache.lucene.index.IndexWriter.close()V(IndexWriter.java:375)
The second one exposes a problem in the close() method which is that the index write.lock is not released when exceptions are thrown in close() causing subsequent attempts to open an IndexWriter to fail.