+1 to add the commit in RIW if it does an operation like forceMerge in close.
Mike McCandless http://blog.mikemccandless.com On Thu, Jul 3, 2014 at 12:23 PM, Shai Erera <[email protected]> wrote: > 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] >> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
