[ https://issues.apache.org/jira/browse/LUCENE-1992?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael McCandless updated LUCENE-1992: --------------------------------------- Attachment: LUCENE-1992.patch Patch attached. I'll commit shortly on trunk & 2.9.1. There is a thread hazard that happens when a merge is committing just as an exception is happening during sync. There merge actually changes the segmentInfos, but fails to checkpoint before exiting the sync block. If an exception during syncing is handled in another thread, this can then decRef the newly merged segment to 0, deleting it too early. > intermittent failure in TestIndexWriter. testExceptionDuringSync > ----------------------------------------------------------------- > > Key: LUCENE-1992 > URL: https://issues.apache.org/jira/browse/LUCENE-1992 > Project: Lucene - Java > Issue Type: Bug > Components: Index > Reporter: Michael McCandless > Assignee: Michael McCandless > Priority: Minor > Fix For: 3.0 > > Attachments: LUCENE-1992.patch > > > {code} > common.test: > [mkdir] Created dir: C:\Projects\lucene\trunk-full1\build\test > [junit] Testsuite: org.apache.lucene.index.TestIndexWriter > [junit] Tests run: 102, Failures: 0, Errors: 1, Time elapsed: 100,297sec > [junit] > [junit] Testcase: > testExceptionDuringSync(org.apache.lucene.index.TestIndexWriter): Caused an > ERROR > [junit] _a.fnm > [junit] java.io.FileNotFoundException: _a.fnm > [junit] at > org.apache.lucene.store.MockRAMDirectory.openInput(MockRAMDirectory.java:226) > [junit] at > org.apache.lucene.index.FieldInfos.<init>(FieldInfos.java:68) > [junit] at > org.apache.lucene.index.SegmentReader$CoreReaders.<init>(SegmentReader.java:116) > [junit] at > org.apache.lucene.index.SegmentReader.get(SegmentReader.java:620) > [junit] at > org.apache.lucene.index.SegmentReader.get(SegmentReader.java:590) > [junit] at > org.apache.lucene.index.DirectoryReader.<init>(DirectoryReader.java:104) > [junit] at > org.apache.lucene.index.ReadOnlyDirectoryReader.<init>(ReadOnlyDirectoryReader.java:27) > [junit] at > org.apache.lucene.index.DirectoryReader$1.doBody(DirectoryReader.java:74) > [junit] at > org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:704) > [junit] at > org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:69) > [junit] at > org.apache.lucene.index.IndexReader.open(IndexReader.java:307) > [junit] at > org.apache.lucene.index.IndexReader.open(IndexReader.java:193) > [junit] at > org.apache.lucene.index.TestIndexWriter.testExceptionDuringSync(TestIndexWriter.java:2723) > [junit] at > org.apache.lucene.util.LuceneTestCase.runBare(LuceneTestCase.java:206) > [junit] > [junit] > [junit] Test org.apache.lucene.index.TestIndexWriter FAILED > {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: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org