The intermittant errors on WIN32 came down to 3rd party software that can open files shortly after they were created, thus preventing rename from succeeding. The combination of native LockFactor implementation (LUCENE-678 ) and Lockless commits (LUCENE-701 ) should resolve these issues.
> "Cannot rename segments.new to segments"
> Key: LUCENE-425
> URL: http://issues.apache.org/jira/browse/LUCENE-425 > Project: Lucene - Java
> Issue Type: Bug
> Components: Index
> Affects Versions: 1.4
> Environment: Operating System: Windows XP
> Platform: PC
> Reporter: Mikko Noromaa
> AddDocument periodically fails with "Cannot rename segments.new to segments".
> Sometimes it happens after 10,000 documents, sometimes after 200,000 documents.
> My index is placed on a FAT partition. My Lucene version is 1.4.3. I am using
> a single IndexWriter object and doing all AddDocuments calls serially from a
> single thread.
> I saw some discussion about this problem in the mailing lists, but looks like
> the problem wasn't completely eliminated yet.
> My suggested solutions are as follows:
> - If renameTo() fails, wait some time and retry. After this, apply the other
> methods that are now in FSDirectory.java. Retry them as well after waiting for
> some time.
> - In the IndexWriter constructor, check for 'segments.new' if 'segments'
> cannot be found. This would allow recovery if FSDirectory failed on a previous
> run. Now I have to write the recovery code myself outside of Lucene.