[ 
https://issues.apache.org/jira/browse/LUCENE-1037?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael McCandless resolved LUCENE-1037.
----------------------------------------

    Resolution: Duplicate

I think very likely this is a dup of LUCENE-1044: on a hard shutdown of a 
machine, the OS and/or hard drive may have cached writes that never get 
completed even though other writes done by the application after those writes, 
were completed.  LUCENE-1044 will fix this by explicitly sync'ing files and not 
deleting old commit points until all files in a newer commit point are sync'd.

> Corrupt index:  term out of order after forced stop during indexing
> -------------------------------------------------------------------
>
>                 Key: LUCENE-1037
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1037
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Index
>    Affects Versions: 2.0.1
>         Environment: Windows Server 2003
>            Reporter: Chuck Williams
>
> In testing a reboot during active indexing, upon restart this exception 
> occurred:
> Caused by: java.io.IOException: term out of order 
> ("ancestorForwarders:".compareTo("descendantMoneyAmounts:$0.351") <= 0)
>       at org.apache.lucene.index.TermInfosWriter.add(TermInfosWriter.java:96)
>       at 
> org.apache.lucene.index.SegmentMerger.mergeTermInfo(SegmentMerger.java:322)
>       at 
> org.apache.lucene.index.SegmentMerger.mergeTermInfos(SegmentMerger.java:289)
>       at 
> org.apache.lucene.index.SegmentMerger.mergeTerms(SegmentMerger.java:253)
>       at org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:96)
>       at 
> org.apache.lucene.index.IndexWriter.mergeSegments(IndexWriter.java:1398)
>       at org.apache.lucene.index.IndexWriter.optimize(IndexWriter.java:835)
>       at ...   (application code)
> The "ancestorForwarders:" term has no text.  The application never creates 
> such a term.  It seems  the reboot occurred while this term was being 
> written, but such a segment should not be linked into the index and so should 
> not be visible after restart.
> The application uses parallel subindexes accessed with ParallelReader.  This 
> reboot caught the system in a state where the indexes were out of sync, i.e. 
> a new document had parts indexed in one subindex but not yet indexed in 
> another.  The application detects this condition upon restart, uses 
> IndexReader.deleteDocument() to delete the parts that were indexed from those 
> subindexes, and then does optimize() all all the subindexes to bring the 
> docid's back into sync.  The optimize() failed, presumably on a subindex that 
> was being written at the time of the reboot.  This subindex would not have 
> completed its document part and so no deleteDocument() would have been 
> performed on it prior to the optimize().
> The version of Lucene here is from January 2007.  I see one other reference 
> to this exception in LUCENE-848.  There is a note there that the exception is 
> likely a core problem, but I don't see any follow up to track it down.
> Any ideas how this could happen?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to