[ https://issues.apache.org/jira/browse/LUCENE-846?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12483919 ]
Michael McCandless commented on LUCENE-846: ------------------------------------------- Excellent I can repro the problem as well, thanks Steven! OK I see what's going on here: if you open a writer with autoCommit=false, and you call addIndexes(*), and you hit an exception (eg disk full) during the addIndexes, the addIndexes call tries to rollback to the index state when it started but in doing so restores the writer's SegmentInfos instance to where it was when addIndexes started. The problem is when autoCommit is false those segments have often already been replaced/merged/etc. and are now gone. The good news is this bug was born with the fix for LUCENE-710, so, it has not been released yet. Also good news is this is straightforward to fix: the addIndexes calls just need to incRef this SegmentInfos' files at the start (and then decRef once done) to protect them from deletion. > IOExeception can cause loss of data due to premature segment deletion > --------------------------------------------------------------------- > > Key: LUCENE-846 > URL: https://issues.apache.org/jira/browse/LUCENE-846 > Project: Lucene - Java > Issue Type: Bug > Components: Index > Reporter: Steven Parkes > Assigned To: Michael McCandless > Attachments: LUCENE-846-test.txt > > > If you hit an IOException, e.g., disk full, while making a cfs from its > constituent parts, you may not be able to rollback to the before-merge > process. This happens via addIndexes. > I don't have a nice easy test for this; generating IOEs ain't so easy. But it > does happen in the patch for the factored merge policy with the existing > tests because the pseudo-randomly generated IOEs fall in a different place. -- 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]