[
https://issues.apache.org/jira/browse/LUCENE-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12924163#action_12924163
]
Michael McCandless commented on LUCENE-2618:
--------------------------------------------
bq. We should fix the code to throw the exception immediately. Is there a way
to check a Directory if it's old or not?
I agree -- IW.open should fail immediately if any of the segments are too old.
Unfortunately, I don't see a simple way to do this. We can't just look at the
version of the segments_N file, for example, because one segment could be from
2.9, and [say] 3.1 had last opened the index and written the 3.x file format
for segments_N. See, IW does not go and open all SegmentReaders on open. It's
only on merge, applying deletes, or opening an NRT reader, that we go and open
segments for reading.
I think to do this correctly we should modify segments_N format to record the
oldest segment in the index? Then IW can check this easily on open.
bq. I don't mind if you continue w/ the fix to the test as you did, but IMO it
just hides the real problem. I.e., allowing all merges caused by optimize() to
finish is a correct fix.
I agree.
There is already a pre-existing TODO in the test stating that we should fix IW
to throw this exc on open. I'll also add a TODO to IW's ctor and go open an
issue...
> Intermittent failure in 3.x's backwards TestThreadedOptimize
> ------------------------------------------------------------
>
> Key: LUCENE-2618
> URL: https://issues.apache.org/jira/browse/LUCENE-2618
> Project: Lucene - Java
> Issue Type: Bug
> Components: Index
> Reporter: Michael McCandless
> Fix For: 3.1, 4.0
>
> Attachments: LUCENE-2618.patch, LUCENE-2618.patch
>
>
> Failure looks like this:
> {noformat}
> [junit] Testsuite: org.apache.lucene.index.TestThreadedOptimize
> [junit] Testcase:
> testThreadedOptimize(org.apache.lucene.index.TestThreadedOptimize): FAILED
> [junit] null
> [junit] junit.framework.AssertionFailedError: null
> [junit] at
> org.apache.lucene.index.TestThreadedOptimize.runTest(TestThreadedOptimize.java:125)
> [junit] at
> org.apache.lucene.index.TestThreadedOptimize.testThreadedOptimize(TestThreadedOptimize.java:149)
> [junit] at
> org.apache.lucene.util.LuceneTestCase.runBare(LuceneTestCase.java:253)
> {noformat}
> I just committed some verbosity so next time it strikes we'll have more
> details.
--
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]