[ 
https://issues.apache.org/jira/browse/LUCENE-7032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15149858#comment-15149858
 ] 

Robert Muir commented on LUCENE-7032:
-------------------------------------

Here is the current best I have. Its still very inefficient and slow, but tends 
to fail in less than five minutes:

{noformat}
rmuir@beast:~/workspace/lucene-solr/lucene/core$ ant beast 
-Dtestcase=TestMinimize -Dtests.method="testBasic*" 
-Dargs="-XX:+UseCompressedOops -XX:+UseParallelGC -XX:-UseSuperWord" 
-Dtests.iters=1000 -Dtests.multiplier=3 -Dtests.seed=5E1BF6106DCA9EC9 
-Dtests.failfast=yes -Dbeast.iters=1000 -Dtests.dups=8 -Dtests.jvms=8
Buildfile: /home/rmuir/workspace/lucene-solr/lucene/core/build.xml

-clover.disable:

ivy-availability-check:

ivy-fail:

ivy-configure:
[ivy:configure] :: Apache Ivy 2.3.0 - 20130110142753 :: 
http://ant.apache.org/ivy/ ::
[ivy:configure] :: loading settings :: file = 
/home/rmuir/workspace/lucene-solr/lucene/ivy-settings.xml

-clover.load:

-clover.classpath:

-clover.setup:

clover:

-check-git-state:

-git-cleanroot:

-copy-git-state:

git-autoclean:

resolve:

init:

compile-core:

compile-test-framework:

-check-git-state:

-git-cleanroot:

-copy-git-state:

git-autoclean:

ivy-availability-check:

ivy-fail:

ivy-configure:
[ivy:configure] :: loading settings :: file = 
/home/rmuir/workspace/lucene-solr/lucene/ivy-settings.xml

resolve:

init:

compile-lucene-core:

-check-git-state:

-git-cleanroot:

-copy-git-state:

git-autoclean:

ivy-availability-check:

ivy-fail:

ivy-configure:
[ivy:configure] :: loading settings :: file = 
/home/rmuir/workspace/lucene-solr/lucene/ivy-settings.xml

resolve:

init:

-clover.disable:

-clover.load:

-clover.classpath:

-clover.setup:

clover:

compile-core:

compile-codecs:

-check-git-state:

-git-cleanroot:

-copy-git-state:

git-autoclean:

ivy-availability-check:

ivy-fail:

ivy-configure:
[ivy:configure] :: loading settings :: file = 
/home/rmuir/workspace/lucene-solr/lucene/ivy-settings.xml

resolve:

common.init:

compile-lucene-core:

init:

-clover.disable:

-clover.load:

-clover.classpath:

-clover.setup:

clover:

compile-core:

-clover.disable:

-clover.load:

-clover.classpath:

-clover.setup:

clover:

common.compile-core:

compile-core:

compile-test:

install-junit4-taskdef:

validate:

resolve-groovy:
[ivy:cachepath] :: resolving dependencies :: 
org.codehaus.groovy#groovy-all-caller;working
[ivy:cachepath]         confs: [default]
[ivy:cachepath]         found org.codehaus.groovy#groovy-all;2.4.4 in public
[ivy:cachepath] :: resolution report :: resolve 12ms :: artifacts dl 0ms
        ---------------------------------------------------------------------
        |                  |            modules            ||   artifacts   |
        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
        ---------------------------------------------------------------------
        |      default     |   1   |   0   |   0   |   0   ||   1   |   0   |
        ---------------------------------------------------------------------

-init-totals:

-beast:
  [beaster] Beast round: 1
   [junit4] Duplicate suite name used with XML reports: 
org.apache.lucene.util.automaton.TestMinimize. This may confuse tools that 
process XML reports. Set 'ignoreDuplicateSuites' to true to skip this message.
  [beaster] Executing 8 suites with 8 JVMs.
  [beaster] 
  [beaster] Started J1 PID(8867@localhost).
  [beaster] Started J6 PID(8857@localhost).
  [beaster] Started J5 PID(8859@localhost).
  [beaster] Started J3 PID(8861@localhost).
  [beaster] Started J4 PID(8862@localhost).
  [beaster] Started J0 PID(8858@localhost).
  [beaster] Started J7 PID(8860@localhost).
  [beaster] Started J2 PID(8863@localhost).
  [beaster]   2> NOTE: reproduce with: ant test  -Dtestcase=TestMinimize 
-Dtests.method=testBasic -Dtests.seed=5E1BF6106DCA9EC9 -Dtests.multiplier=3 
-Dtests.locale=fr-GF -Dtests.timezone=Africa/Khartoum -Dtests.asserts=true 
-Dtests.file.encoding=UTF-8
  [beaster] [23:43:35.303] ERROR   0.62s J0 | TestMinimize.testBasic { 
seed=[5E1BF6106DCA9EC9:3C97F1414A872260]} <<<
  [beaster]    > Throwable #1: java.lang.IllegalArgumentException: source=3 is 
out of bounds (maxState is 2)
  [beaster]    >        at 
__randomizedtesting.SeedInfo.seed([5E1BF6106DCA9EC9:3C97F1414A872260]:0)
  [beaster]    >        at 
org.apache.lucene.util.automaton.Automaton.addTransition(Automaton.java:165)
  [beaster]    >        at 
org.apache.lucene.util.automaton.MinimizationOperations.minimize(MinimizationOperations.java:245)
  [beaster]    >        at 
org.apache.lucene.util.automaton.RegExp.toAutomatonInternal(RegExp.java:537)
  [beaster]    >        at 
org.apache.lucene.util.automaton.RegExp.findLeaves(RegExp.java:617)
  [beaster]    >        at 
org.apache.lucene.util.automaton.RegExp.toAutomatonInternal(RegExp.java:521)
  [beaster]    >        at 
org.apache.lucene.util.automaton.RegExp.findLeaves(RegExp.java:617)
  [beaster]    >        at 
org.apache.lucene.util.automaton.RegExp.toAutomatonInternal(RegExp.java:512)
  [beaster]    >        at 
org.apache.lucene.util.automaton.RegExp.toAutomaton(RegExp.java:495)
  [beaster]    >        at 
org.apache.lucene.util.automaton.RegExp.toAutomaton(RegExp.java:426)
  [beaster]    >        at 
org.apache.lucene.util.automaton.AutomatonTestUtil.randomSingleAutomaton(AutomatonTestUtil.java:262)
  [beaster]    >        at 
org.apache.lucene.util.automaton.AutomatonTestUtil.randomAutomaton(AutomatonTestUtil.java:277)
  [beaster]    >        at 
org.apache.lucene.util.automaton.TestMinimize.testBasic(TestMinimize.java:30)
  [beaster]    >        at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown 
Source)
  [beaster]    >        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  [beaster]    >        at java.lang.reflect.Method.invoke(Method.java:520)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1764)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:871)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:907)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:921)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:49)
  [beaster]    >        at 
org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:367)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:809)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:460)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:880)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:781)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:816)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:827)
  [beaster]    >        at 
org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:41)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:367)
  [beaster]    >        at java.lang.Thread.run(Thread.java:804)
  [beaster]   2> NOTE: test params are: codec=Asserting(Lucene60): {}, 
docValues:{}, sim=RandomSimilarity(queryNorm=true,coord=no): {}, locale=fr-GF, 
timezone=Africa/Khartoum
  [beaster]   2> NOTE: Linux 4.2.0-25-generic amd64/Oracle Corporation 9-ea 
(64-bit)/cpus=8,threads=1,free=159816632,total=242745344
  [beaster]   2> NOTE: All tests run in this JVM: [TestMinimize]
  [beaster]   2> NOTE: reproduce with: ant test  -Dtestcase=TestMinimize 
-Dtests.method=testBasic -Dtests.seed=5E1BF6106DCA9EC9 -Dtests.multiplier=3 
-Dtests.locale=fr-GF -Dtests.timezone=Africa/Khartoum -Dtests.asserts=true 
-Dtests.file.encoding=UTF-8
  [beaster] [23:43:38.117] ERROR   0.47s J1 | TestMinimize.testBasic { 
seed=[5E1BF6106DCA9EC9:ECAC52C8285BA478]} <<<
  [beaster]    > Throwable #1: java.lang.ArrayIndexOutOfBoundsException: 10
  [beaster]    >        at 
__randomizedtesting.SeedInfo.seed([5E1BF6106DCA9EC9:ECAC52C8285BA478]:0)
  [beaster]    >        at 
org.apache.lucene.util.automaton.MinimizationOperations.minimize(MinimizationOperations.java:235)
  [beaster]    >        at 
org.apache.lucene.util.automaton.RegExp.toAutomatonInternal(RegExp.java:524)
  [beaster]    >        at 
org.apache.lucene.util.automaton.RegExp.toAutomaton(RegExp.java:495)
  [beaster]    >        at 
org.apache.lucene.util.automaton.RegExp.toAutomaton(RegExp.java:426)
  [beaster]    >        at 
org.apache.lucene.util.automaton.AutomatonTestUtil.randomSingleAutomaton(AutomatonTestUtil.java:262)
  [beaster]    >        at 
org.apache.lucene.util.automaton.AutomatonTestUtil.randomAutomaton(AutomatonTestUtil.java:276)
  [beaster]    >        at 
org.apache.lucene.util.automaton.TestMinimize.testBasic(TestMinimize.java:30)
  [beaster]    >        at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown 
Source)
  [beaster]    >        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  [beaster]    >        at java.lang.reflect.Method.invoke(Method.java:520)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1764)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:871)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:907)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:921)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:49)
  [beaster]    >        at 
org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:367)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:809)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:460)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:880)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:781)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:816)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:827)
  [beaster]    >        at 
org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:41)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64)
  [beaster]    >        at 
org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  [beaster]    >        at 
com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:367)
  [beaster]    >        at java.lang.Thread.run(Thread.java:804)
  [beaster]   2> NOTE: test params are: codec=Asserting(Lucene60): {}, 
docValues:{}, sim=RandomSimilarity(queryNorm=true,coord=no): {}, locale=fr-GF, 
timezone=Africa/Khartoum
  [beaster]   2> NOTE: Linux 4.2.0-25-generic amd64/Oracle Corporation 9-ea 
(64-bit)/cpus=8,threads=1,free=177601584,total=233832448
  [beaster]   2> NOTE: All tests run in this JVM: [TestMinimize]
  [beaster] 
  [beaster] Tests with failures [seed: 5E1BF6106DCA9EC9]:
  [beaster]   - org.apache.lucene.util.automaton.TestMinimize.testBasic { 
seed=[5E1BF6106DCA9EC9:3C97F1414A872260]}
  [beaster]   - org.apache.lucene.util.automaton.TestMinimize.testBasic { 
seed=[5E1BF6106DCA9EC9:ECAC52C8285BA478]}
  [beaster] 
  [beaster] 

BUILD FAILED
/home/rmuir/workspace/lucene-solr/lucene/common-build.xml:1467: The following 
error occurred while executing this line:
/home/rmuir/workspace/lucene-solr/lucene/common-build.xml:1457: The following 
error occurred while executing this line:
/home/rmuir/workspace/lucene-solr/lucene/common-build.xml:1014: There were test 
failures: 8 suites, 8000 tests, 2 errors, 1945 ignored (1945 assumptions) 
[seed: 5E1BF6106DCA9EC9]
{noformat}

> jdk-9-ea+105 breaks MinimizeOperations.minimize()
> -------------------------------------------------
>
>                 Key: LUCENE-7032
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7032
>             Project: Lucene - Core
>          Issue Type: Bug
>            Reporter: Robert Muir
>
> As soon as jdk-9-ea+105 was put into test rotation, automaton tests have been 
> sporatically failing in non-reproducible ways. All of them invoke hopcroft 
> minimization either directly or indirectly.
> The bug manifests in several forms:
> * ArrayIndexOutOfBoundsException in minimize()
> * IllegalArgumentException for an explicit bounds check
> * incorrect resulting automaton
> This method is ... let's say not the ideal one to debug something like this, 
> but I've at least got it where I can make it fail in a few minutes with 
> beasting, so we can try simple things like turning on/off jvm flags to try to 
> narrow it more.
> It would be really great to make it fail more efficiently, but unfortunately 
> it takes many thousands of iterations until we understand more about it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to