[
https://issues.apache.org/jira/browse/LUCENE-3348?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13072968#comment-13072968
]
Simon Willnauer commented on LUCENE-3348:
-----------------------------------------
bq. Sorry to add my opinion to this, however I think that while non-blocking
deletes are quite fancy, it seems they are open to various bugs such as this.
Is there a compelling reason non-locking is used, eg, performance?
Jason, this issue is unrelated to non-blocking deletes. The bug here is in
concurrent flush which is indeed the main performance factor in DWPT.
> 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: [email protected]
For additional commands, e-mail: [email protected]