[ 
https://issues.apache.org/jira/browse/LUCENE-3348?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13072599#comment-13072599
 ] 

Michael McCandless commented on LUCENE-3348:
--------------------------------------------

The 2nd bug seems to be because a commit() is running concurrently with a 
getReader(), and the flush-all being done for the getReader() is making a newly 
flushed segment visible to the SegmentInfos just before commit clones the 
SegmentInfos, and the buffered deletes have not been fully processed yet at the 
point for that new segment (and for segments before it).

You can see it in IW.prepareCommit -- we call flush(true, true) and then 
startCommit w/o any sync, so in there a concurrent getReader can sneak in a 
change to the segmentInfos so that an updateDocument appears non-atomic.

> IndexWriter applies wrong deletes during concurrent flush-all
> -------------------------------------------------------------
>
>                 Key: LUCENE-3348
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3348
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: core/index
>            Reporter: Michael McCandless
>            Assignee: Michael McCandless
>             Fix For: 3.4, 4.0
>
>         Attachments: LUCENE-3348.patch
>
>
> Yonik uncovered this with the TestRealTimeGet test: if a flush-all is
> underway, it is possible for an incoming update to pick a DWPT that is
> stale, ie, not yet pulled/marked for flushing, yet the DW has cutover
> to a new deletes queue.  If this happens, and the deleted term was
> also updated in one of the non-stale DWPTs, then the wrong document is
> deleted and the test fails by detecting the wrong value.
> There's a 2nd failure mode that I haven't figured out yet, whereby 2
> docs are returned when searching by id (there should only ever be 1
> doc since the test uses updateDocument which is atomic wrt
> commit/reopen).
> Yonik verified the test passes pre-DWPT, so my guess is (but I
> have yet to verify) this test also passes on 3.x.  I'll backport
> the test to 3.x to be sure.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to