I am still digging - this isn't related to IW.changeCount, but SegInfos.counter.
I think there's a bug in RandomIndexWriter - when you call close(), it randomly executes a forceMerge(), then closes, without committing. In IW.close(), we only check for lost changes prior to 5.0, therefore we don't hit the RuntimeException, and the changes made by forceMerge() are rolled-back. But at that point, _1.fdx was already written (even though it was deleted by rollback()), therefore addIndexes cannot write it again. This seems to be a bug in RIW, not in core code, and if I add w.commit() after that randomForceMerge, the test passes. I will review it again later and commit, perhaps someone can take a second look. Shai On Thu, Jul 3, 2014 at 6:50 PM, Shai Erera <[email protected]> wrote: > It reproduces ... something's fishy with IW.changeCount -- seems that > after you open an IW on an existing Directory, changeCount = 0. I will try > to reproduce this in a standalone test to verify if it's a general IW bug > or not. > > Shai > > > On Thu, Jul 3, 2014 at 2:54 PM, Policeman Jenkins Server < > [email protected]> wrote: > >> Build: http://jenkins.thetaphi.de/job/Lucene-Solr-trunk-Linux/10711/ >> Java: 64bit/jdk1.8.0_20-ea-b15 -XX:+UseCompressedOops -XX:+UseG1GC >> >> 1 tests failed. >> FAILED: >> >> org.apache.lucene.facet.taxonomy.OrdinalMappingReaderTest.testTaxonomyMergeUtils >> >> Error Message: >> file "_1.fdx" was already written to >> >> Stack Trace: >> java.io.IOException: file "_1.fdx" was already written to >> at >> __randomizedtesting.SeedInfo.seed([2AFF1A4359AFD7EB:C8D30CECD284E330]:0) >> at >> org.apache.lucene.store.MockDirectoryWrapper.createOutput(MockDirectoryWrapper.java:492) >> at >> org.apache.lucene.store.TrackingDirectoryWrapper.createOutput(TrackingDirectoryWrapper.java:44) >> at >> org.apache.lucene.codecs.compressing.CompressingStoredFieldsWriter.<init>(CompressingStoredFieldsWriter.java:110) >> at >> org.apache.lucene.codecs.compressing.CompressingStoredFieldsFormat.fieldsWriter(CompressingStoredFieldsFormat.java:120) >> at >> org.apache.lucene.index.SegmentMerger.mergeFields(SegmentMerger.java:327) >> at >> org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:98) >> at >> org.apache.lucene.index.IndexWriter.addIndexes(IndexWriter.java:2590) >> at >> org.apache.lucene.facet.taxonomy.TaxonomyMergeUtils.merge(TaxonomyMergeUtils.java:56) >> at >> org.apache.lucene.facet.taxonomy.OrdinalMappingReaderTest.testTaxonomyMergeUtils(OrdinalMappingReaderTest.java:73) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:483) >> at >> com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1618) >> at >> com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:827) >> at >> com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:863) >> at >> com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:877) >> at >> org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:50) >> at >> org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:46) >> at >> com.carrotsearch.randomizedtesting.rules.SystemPropertiesInvariantRule$1.evaluate(SystemPropertiesInvariantRule.java:55) >> at >> org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:49) >> at >> org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:65) >> at >> org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:48) >> at >> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) >> at >> com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:365) >> at >> com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:798) >> at >> com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:458) >> at >> com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:836) >> at >> com.carrotsearch.randomizedtesting.RandomizedRunner$3.evaluate(RandomizedRunner.java:738) >> at >> com.carrotsearch.randomizedtesting.RandomizedRunner$4.evaluate(RandomizedRunner.java:772) >> at >> com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:783) >> at >> org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:46) >> at >> org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:42) >> at >> com.carrotsearch.randomizedtesting.rules.SystemPropertiesInvariantRule$1.evaluate(SystemPropertiesInvariantRule.java:55) >> at >> com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:39) >> at >> com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:39) >> at >> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) >> at >> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) >> at >> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) >> at >> org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:43) >> at >> org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:48) >> at >> org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:65) >> at >> org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:55) >> at >> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) >> at >> com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:365) >> at java.lang.Thread.run(Thread.java:745) >> >> >> >> >> Build Log: >> [...truncated 8066 lines...] >> [junit4] Suite: >> org.apache.lucene.facet.taxonomy.OrdinalMappingReaderTest >> [junit4] 2> NOTE: reproduce with: ant test >> -Dtestcase=OrdinalMappingReaderTest -Dtests.method=testTaxonomyMergeUtils >> -Dtests.seed=2AFF1A4359AFD7EB -Dtests.multiplier=3 -Dtests.slow=true >> -Dtests.locale=hi_IN -Dtests.timezone=SystemV/MST7MDT >> -Dtests.file.encoding=UTF-8 >> [junit4] ERROR 0.54s J1 | >> OrdinalMappingReaderTest.testTaxonomyMergeUtils <<< >> [junit4] > Throwable #1: java.io.IOException: file "_1.fdx" was >> already written to >> [junit4] > at >> __randomizedtesting.SeedInfo.seed([2AFF1A4359AFD7EB:C8D30CECD284E330]:0) >> [junit4] > at >> org.apache.lucene.store.MockDirectoryWrapper.createOutput(MockDirectoryWrapper.java:492) >> [junit4] > at >> org.apache.lucene.store.TrackingDirectoryWrapper.createOutput(TrackingDirectoryWrapper.java:44) >> [junit4] > at >> org.apache.lucene.codecs.compressing.CompressingStoredFieldsWriter.<init>(CompressingStoredFieldsWriter.java:110) >> [junit4] > at >> org.apache.lucene.codecs.compressing.CompressingStoredFieldsFormat.fieldsWriter(CompressingStoredFieldsFormat.java:120) >> [junit4] > at >> org.apache.lucene.index.SegmentMerger.mergeFields(SegmentMerger.java:327) >> [junit4] > at >> org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:98) >> [junit4] > at >> org.apache.lucene.index.IndexWriter.addIndexes(IndexWriter.java:2590) >> [junit4] > at >> org.apache.lucene.facet.taxonomy.TaxonomyMergeUtils.merge(TaxonomyMergeUtils.java:56) >> [junit4] > at >> org.apache.lucene.facet.taxonomy.OrdinalMappingReaderTest.testTaxonomyMergeUtils(OrdinalMappingReaderTest.java:73) >> [junit4] > at java.lang.Thread.run(Thread.java:745) >> [junit4] 2> NOTE: test params are: codec=Lucene41, >> sim=RandomSimilarityProvider(queryNorm=true,coord=crazy): {}, locale=hi_IN, >> timezone=SystemV/MST7MDT >> [junit4] 2> NOTE: Linux 3.8.0-42-generic amd64/Oracle Corporation >> 1.8.0_20-ea (64-bit)/cpus=8,threads=1,free=105436336,total=132120576 >> [junit4] 2> NOTE: All tests run in this JVM: >> [TestTaxonomyFacetCounts, OrdinalMappingReaderTest] >> [junit4] Completed on J1 in 0.59s, 1 test, 1 error <<< FAILURES! >> >> [...truncated 70 lines...] >> BUILD FAILED >> /mnt/ssd/jenkins/workspace/Lucene-Solr-trunk-Linux/build.xml:467: The >> following error occurred while executing this line: >> /mnt/ssd/jenkins/workspace/Lucene-Solr-trunk-Linux/build.xml:447: The >> following error occurred while executing this line: >> /mnt/ssd/jenkins/workspace/Lucene-Solr-trunk-Linux/build.xml:45: The >> following error occurred while executing this line: >> /mnt/ssd/jenkins/workspace/Lucene-Solr-trunk-Linux/extra-targets.xml:37: >> The following error occurred while executing this line: >> /mnt/ssd/jenkins/workspace/Lucene-Solr-trunk-Linux/lucene/build.xml:544: >> The following error occurred while executing this line: >> /mnt/ssd/jenkins/workspace/Lucene-Solr-trunk-Linux/lucene/common-build.xml:2019: >> The following error occurred while executing this line: >> /mnt/ssd/jenkins/workspace/Lucene-Solr-trunk-Linux/lucene/module-build.xml:60: >> The following error occurred while executing this line: >> /mnt/ssd/jenkins/workspace/Lucene-Solr-trunk-Linux/lucene/common-build.xml:1298: >> The following error occurred while executing this line: >> /mnt/ssd/jenkins/workspace/Lucene-Solr-trunk-Linux/lucene/common-build.xml:922: >> There were test failures: 23 suites, 155 tests, 1 error, 1 ignored (1 >> assumption) >> >> Total time: 30 minutes 21 seconds >> Build step 'Invoke Ant' marked build as failure >> [description-setter] Description set: Java: 64bit/jdk1.8.0_20-ea-b15 >> -XX:+UseCompressedOops -XX:+UseG1GC >> Archiving artifacts >> Recording test results >> Email was triggered for: Failure - Any >> Sending email for trigger: Failure - Any >> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > >
