lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <>
Subject [jira] Commented: (LUCENE-2720) IndexWriter should throw IndexFormatTooOldExc on open, not later during optimize/getReader/close
Date Sat, 23 Oct 2010 11:18:19 GMT


Uwe Schindler commented on LUCENE-2720:

bq. Actually we need only to distinguish 2.x vs 3.x right? I think we can just use the stored
fields file, since it changed as of 3.0?

We discussed this in IRC shortly before:
To detect a pre-3.0 index, it's enough to read the StoredFields file (is it really *always*
available?). So 3.x and 4.0 do the following in the ctors/open:
- if segments file is 3.x format, it contains information about util.Version -> we are
fine no more work. In 4.0 we are happy with the index
- Only trunk: if segments file is older format, read the StoredFields file in ctor. This would
throw IndexFormatTooOldEx in 4.0 (this is additional work, if stored fields are not needed,
but neglectible). Once the index is modified, we know about

Once an index is modified with 3.x or 4.0 we always update the version and write new segment
information. For older segments, this code also has to inspect the stored fields file, to
detect if segment is pre-3.x. This is done exatctly once during update of segments_N.

> IndexWriter should throw IndexFormatTooOldExc on open, not later during optimize/getReader/close
> ------------------------------------------------------------------------------------------------
>                 Key: LUCENE-2720
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Index
>            Reporter: Michael McCandless
>             Fix For: 3.1, 4.0
> Spinoff of LUCENE-2618 and also related to the original issue LUCENE-2523...
> If you open IW on a too-old index, you don't find out until much later that the index
is too old.
> This is because IW does not go and open segment readers on all segments.  It only does
so when it's time to apply deletes, do merges, open an NRT reader, etc.
> This is a serious bug because you can in fact succeed in committing with the new major
version of Lucene against your too-old index, which is catastrophic because suddenly the old
Lucene version will no longer open the index, and so your index becomes unusable.

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