>
> another way would be to disable merging and just issue tons and tons
> and tons of updates and reopen and ... the test either passes or hits
> OOM and runs out of open files?
>

That's what testStressMultithreading sort of does already (that's how we
discovered this bug).

I'd like to have a very simple, deterministic and quick test which asserts
that. Do you see a problem w/ comparing dir.listAll().length? I don't
suppose a Codec will decide to write 2 files on the first update and 3
files on the second, right?

Shai


On Mon, Sep 30, 2013 at 7:45 AM, Robert Muir <[email protected]> wrote:

> another way would be to disable merging and just issue tons and tons
> and tons of updates and reopen and ... the test either passes or hits
> OOM and runs out of open files? :)
>
> but seriously we could force MockDir to have a limited size in bytes
> (e.g. 5MB) and do something like this, if there is a bug it will hit
> disk full?
>
> On Mon, Sep 30, 2013 at 12:32 AM, Shai Erera <[email protected]> wrote:
> > The problem is that the test uses SimpleTextCodec, which creates the
> field
> > infos files w/ .inf extension and not .fnm. As I suspected on the issue,
> > asserting on the existence of .fnm files is fragile and not generic
> enough.
> > I'll think of a better way to assert that, maybe by comparing the number
> of
> > files in the directory after the first and second commits?
> >
> > Shai
> >
> >
> > On Mon, Sep 30, 2013 at 3:36 AM, <[email protected]> wrote:
> >>
> >> Build:
> >> builds.flonkings.com/job/Lucene-trunk-Linux-Java7-64-test-only/59424/
> >>
> >> 1 tests failed.
> >> REGRESSION:
> >>
> org.apache.lucene.index.TestNumericDocValuesUpdates.testDeleteUnusedUpdatesFiles
> >>
> >> Error Message:
> >>
> >>
> >> Stack Trace:
> >> java.lang.AssertionError
> >>         at
> >> __randomizedtesting.SeedInfo.seed([7A986DE169C6A52E:5856DC94C0A0256E]:0)
> >>         at org.junit.Assert.fail(Assert.java:92)
> >>         at org.junit.Assert.assertTrue(Assert.java:43)
> >>         at org.junit.Assert.assertTrue(Assert.java:54)
> >>         at
> >>
> org.apache.lucene.index.TestNumericDocValuesUpdates.testDeleteUnusedUpdatesFiles(TestNumericDocValuesUpdates.java:1201)
> >>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>         at
> >>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> >>         at
> >>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> >>         at java.lang.reflect.Method.invoke(Method.java:601)
> >>         at
> >>
> com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1559)
> >>         at
> >>
> com.carrotsearch.randomizedtesting.RandomizedRunner.access$600(RandomizedRunner.java:79)
> >>         at
> >>
> com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:737)
> >>         at
> >>
> com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:773)
> >>         at
> >>
> com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:787)
> >>         at
> >>
> org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:50)
> >>         at
> >>
> org.apache.lucene.util.TestRuleFieldCacheSanity$1.evaluate(TestRuleFieldCacheSanity.java:51)
> >>         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:70)
> >>         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:358)
> >>         at
> >>
> com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:782)
> >>         at
> >>
> com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:442)
> >>         at
> >>
> com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:746)
> >>         at
> >>
> com.carrotsearch.randomizedtesting.RandomizedRunner$3.evaluate(RandomizedRunner.java:648)
> >>         at
> >>
> com.carrotsearch.randomizedtesting.RandomizedRunner$4.evaluate(RandomizedRunner.java:682)
> >>         at
> >>
> com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:693)
> >>         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
> >>
> 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:70)
> >>         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:358)
> >>         at java.lang.Thread.run(Thread.java:722)
> >>
> >>
> >>
> >>
> >> Build Log:
> >> [...truncated 1339 lines...]
> >>    [junit4] Suite: org.apache.lucene.index.TestNumericDocValuesUpdates
> >>    [junit4]   2> NOTE: reproduce with: ant test
> >> -Dtestcase=TestNumericDocValuesUpdates
> >> -Dtests.method=testDeleteUnusedUpdatesFiles
> -Dtests.seed=7A986DE169C6A52E
> >> -Dtests.slow=true -Dtests.locale=ru_RU -Dtests.timezone=Asia/Bahrain
> >> -Dtests.file.encoding=UTF-8
> >>    [junit4] FAILURE 0.05s J6 |
> >> TestNumericDocValuesUpdates.testDeleteUnusedUpdatesFiles <<<
> >>    [junit4]    > Throwable #1: java.lang.AssertionError
> >>    [junit4]    >        at
> >> __randomizedtesting.SeedInfo.seed([7A986DE169C6A52E:5856DC94C0A0256E]:0)
> >>    [junit4]    >        at
> >>
> org.apache.lucene.index.TestNumericDocValuesUpdates.testDeleteUnusedUpdatesFiles(TestNumericDocValuesUpdates.java:1201)
> >>    [junit4]    >        at java.lang.Thread.run(Thread.java:722)
> >>    [junit4]   2> NOTE: test params are: codec=SimpleText,
> >> sim=RandomSimilarityProvider(queryNorm=true,coord=crazy): {},
> locale=ru_RU,
> >> timezone=Asia/Bahrain
> >>    [junit4]   2> NOTE: Linux 3.2.0-26-generic amd64/Oracle Corporation
> >> 1.7.0_05 (64-bit)/cpus=8,threads=1,free=93972400,total=172359680
> >>    [junit4]   2> NOTE: All tests run in this JVM:
> >> [TestSpanSearchEquivalence, TestQueryWrapperFilter, TestTermVectors,
> >> TestCompressingStoredFieldsFormat, TestPrefixFilter, TestSetOnce,
> >> TestNumericUtils, TestBlockPostingsFormat, TestDocIdBitSet,
> >> TestLucene40TermVectorsFormat, Nested, Nested, TestAutomatonQuery,
> >> TestFilterIterator, TestDoubleBarrelLRUCache, TestBinaryTerms,
> >> TestSpanMultiTermQueryWrapper, TestUniqueTermCount, TestPrefixRandom,
> >> TestUTF32ToUTF8, Nested1, TestHighCompressionMode, TestBasics,
> TestBoolean2,
> >> TestGraphTokenizers, TestSloppyPhraseQuery,
> TestConcurrentMergeScheduler,
> >> TestParallelCompositeReader, TestTransactions,
> TestPerFieldPostingsFormat2,
> >> TestSimilarityBase, TestFlex, TestDocsAndPositions, TestMultiFields,
> >> TestFuzzyQuery, TestNoDeletionPolicy, TestTopDocsCollector,
> >> TestComplexExplanationsOfNonMatches, TestDocument, TestIndexableField,
> >> TestElevationComparator, TestDateSort, ThrowInUncaught,
> TestAttributeSource,
> >> TestIsCurrent, Nested1, TestExplanations, TestIndexCommit, Test2BTerms,
> >> TestNumericDocValuesUpdates]
> >>    [junit4] Completed on J6 in 6.56s, 26 tests, 1 failure <<< FAILURES!
> >>
> >> [...truncated 16 lines...]
> >> BUILD FAILED
> >>
> >>
> /var/lib/jenkins/workspace/Lucene-trunk-Linux-Java7-64-test-only/checkout/lucene/build.xml:49:
> >> The following error occurred while executing this line:
> >>
> >>
> /var/lib/jenkins/workspace/Lucene-trunk-Linux-Java7-64-test-only/checkout/lucene/common-build.xml:1230:
> >> The following error occurred while executing this line:
> >>
> >>
> /var/lib/jenkins/workspace/Lucene-trunk-Linux-Java7-64-test-only/checkout/lucene/common-build.xml:873:
> >> There were test failures: 368 suites, 2615 tests, 1 failure, 74 ignored
> (61
> >> assumptions)
> >>
> >> Total time: 4 minutes 44 seconds
> >> Build step 'Invoke Ant' marked build as failure
> >> Archiving artifacts
> >> Recording test results
> >> Email was triggered for: Failure
> >> Sending email for trigger: Failure
> >>
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> 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