+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]

Reply via email to