[ https://issues.apache.org/jira/browse/LUCENE-1547?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael McCandless resolved LUCENE-1547. ---------------------------------------- Resolution: Fixed Fixed on 2.9 & 2.4.1. > Rare thread hazard in IndexWriter.commit() > ------------------------------------------ > > Key: LUCENE-1547 > URL: https://issues.apache.org/jira/browse/LUCENE-1547 > Project: Lucene - Java > Issue Type: Bug > Components: Index > Affects Versions: 2.4 > Reporter: Michael McCandless > Assignee: Michael McCandless > Priority: Minor > Fix For: 2.4.1, 2.9 > > Attachments: LUCENE-1547.patch > > > The nightly build 2 nights ago hit this: > {code} > NOTE: random seed of testcase 'testAtomicUpdates' was: -5065675995121791051 > [junit] ------------- ---------------- --------------- > [junit] Testcase: > testAtomicUpdates(org.apache.lucene.index.TestAtomicUpdate): FAILED > [junit] expected:<100> but was:<91> > [junit] junit.framework.AssertionFailedError: expected:<100> but was:<91> > [junit] at > org.apache.lucene.index.TestAtomicUpdate.runTest(TestAtomicUpdate.java:142) > [junit] at > org.apache.lucene.index.TestAtomicUpdate.testAtomicUpdates(TestAtomicUpdate.java:194) > [junit] at > org.apache.lucene.util.LuceneTestCase.runTest(LuceneTestCase.java:88) > {code} > It's an intermittant failure that only happens when multiple threads > are calling commit() at once. With autoComit=true and > ConcurrentMergeScheduler, this can happen more often because each > merge thread calls commit after it's done. > The problem happens when one thread has already begun the commit > process, but another two or more threads then come along wanting to > also commit after further changes have happened. Those two or more > threads would wait until the currently committing thread finished, and > then they'd wake up and do their commit. The problem was, after > waking up they would fail to check whether they had been superseded, > ie whether another thread had already committed more up-to-date > changes. > The fix is simple -- after waking up, check again if your commit has > been superseded, and skip your commit if so. -- 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