Problem with IndexWriter.mergeFinish
------------------------------------
Key: LUCENE-1554
URL: https://issues.apache.org/jira/browse/LUCENE-1554
Project: Lucene - Java
Issue Type: Bug
Affects Versions: 2.4
Reporter: Scott Garland
I'm getting a (very) infrequent assert in IndexWriter.mergeFinish from
TestIndexWriter.testAddIndexOnDiskFull. The problem occurs during the rollback
when the merge hasn't been registered. I'm not 100% sure this is the correct
fix, because it's such an infrequent event.
{code:java}
final synchronized void mergeFinish(MergePolicy.OneMerge merge) throws
IOException {
// Optimize, addIndexes or finishMerges may be waiting
// on merges to finish.
notifyAll();
if (merge.increfDone)
decrefMergeSegments(merge);
assert merge.registerDone;
final SegmentInfos sourceSegments = merge.segments;
final int end = sourceSegments.size();
for(int i=0;i<end;i++)
mergingSegments.remove(sourceSegments.info(i));
mergingSegments.remove(merge.info);
merge.registerDone = false;
}
{code}
Should be something like:
{code:java}
final synchronized void mergeFinish(MergePolicy.OneMerge merge) throws
IOException {
// Optimize, addIndexes or finishMerges may be waiting
// on merges to finish.
notifyAll();
if (merge.increfDone)
decrefMergeSegments(merge);
if (merge.registerDone) {
final SegmentInfos sourceSegments = merge.segments;
final int end = sourceSegments.size();
for(int i=0;i<end;i++)
mergingSegments.remove(sourceSegments.info(i));
mergingSegments.remove(merge.info);
merge.registerDone = false;
}
}
{code}
--
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]