lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <>
Subject [jira] Commented: (LUCENE-2637) FSDirectory.copyBytes isn't safe for SimpleFSDirectory
Date Thu, 09 Sep 2010 09:56:32 GMT


Uwe Schindler commented on LUCENE-2637:

I have still the question, why do we do NIO-based optimizations in FSDir and only if *both*
the given DataInput and this both are NIOFSIndexInput/NIOFSIndexOutput, so limit it only to
the case when both involved directories are NIO. So I would move the optmization (in another
issue) to NIOFSDir, and do a check "if input instanceof NIOFSIndexInput", in all other cases
call super?

I was also against the original Directory.copy() method using NIO. NIO should only be used
in NIOFSDir, nowhere else. I am not sure what happens with MMapDirectory when used that way,
mixed together with possibly other IndexInput types.

> FSDirectory.copyBytes isn't safe for SimpleFSDirectory
> ------------------------------------------------------
>                 Key: LUCENE-2637
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Tests
>    Affects Versions: 3.1, 4.0
>            Reporter: Robert Muir
>            Assignee: Robert Muir
>         Attachments: LUCENE-2637.patch, LUCENE-2637.patch
> the copyBytes optimization from LUCENE-2574 is not safe for SimpleFSDirectory, but works
fine for NIOFSDirectory.
> With SimpleFSDirectory, the copyBytes optimization causes index corruption.
> see
for background
> here are my steps to reproduce (most of the time, at least on windows):
> {noformat}
> 1. edit line 87 of TestIndexWriter to plugin the seed:
>     random = newRandom(3312389322103990899L);
> 2. edit line 5138 of TestIndexWriter to force SimpleFSDirectory:
>     Directory dir = new SimpleFSDirectory(index);
> 3. run this command:
>     ant clean test-core -Dtestcase=TestIndexWriter
> -Dtestmethod=testRandomStoredFields -Dtests.iter=10
> -Dtests.codec="MockVariableIntBlock(29)"
> {noformat}

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:
For additional commands, e-mail:

View raw message