Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CI] EsqlNodeSubclassTests ToPartial failure #110310

Closed
astefan opened this issue Jun 30, 2024 · 5 comments · Fixed by #110448
Closed

[CI] EsqlNodeSubclassTests ToPartial failure #110310

astefan opened this issue Jun 30, 2024 · 5 comments · Fixed by #110448
Assignees
Labels
:Analytics/ES|QL AKA ESQL low-risk An open issue or test failure that is a low risk to future releases Team:Analytics Meta label for analytical engine team (ESQL/Aggs/Geo) >test-failure Triaged test failures from CI

Comments

@astefan
Copy link
Contributor

astefan commented Jun 30, 2024

CI Link

https://buildkite.com/elastic/elasticsearch-pull-request/builds/24191#0190699a-a75d-4ece-975b-e64a993e0d1a

Repro line

./gradlew ':x-pack:plugin:esql:test' --tests "org.elasticsearch.xpack.esql.tree.EsqlNodeSubclassTests" -Dtests.method="testInfoParameters {class org.elasticsearch.xpack.esql.expression.function.aggregate.ToPartial}" -Dtests.seed=F05AB5B3EBF180EC -Dtests.locale=et -Dtests.timezone=Africa/Harare -Druntime.java=22

Does it reproduce?

Yes

Applicable branches

main

Failure history

No response

Failure excerpt

<html>
<body>
<!--StartFragment-->
REPRODUCE WITH: ./gradlew ':x-pack:plugin:esql:test' --tests "org.elasticsearch.xpack.esql.tree.EsqlNodeSubclassTests" -Dtests.method="testInfoParameters {class org.elasticsearch.xpack.esql.expression.function.aggregate.ToPartial}" -Dtests.seed=F05AB5B3EBF180EC -Dtests.locale=et -Dtests.timezone=Africa/Harare -Druntime.java=22
--
  |  
  | EsqlNodeSubclassTests > testInfoParameters {class org.elasticsearch.xpack.esql.expression.function.aggregate.ToPartial} FAILED
  | java.lang.AssertionError: expected:<1> but was:<2>
  | at __randomizedtesting.SeedInfo.seed([F05AB5B3EBF180EC:A03EB7D16901A572]:0)
  | at org.junit.Assert.fail(Assert.java:89)
  | at org.junit.Assert.failNotEquals(Assert.java:835)
  | at org.junit.Assert.assertEquals(Assert.java:647)
  | at org.junit.Assert.assertEquals(Assert.java:633)
  | at org.elasticsearch.xpack.esql.core.tree.NodeSubclassTests.testInfoParameters(NodeSubclassTests.java:110)
  | at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
  | at java.base/java.lang.reflect.Method.invoke(Method.java:580)
  | at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1758)
  | at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:946)
  | at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:982)
  | at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:996)
  | at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  | at org.junit.rules.RunRules.evaluate(RunRules.java:20)
  | at org.apache.lucene.tests.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:48)
  | at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
  | at org.apache.lucene.tests.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:45)
  | at org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
  | at org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
  | at org.junit.rules.RunRules.evaluate(RunRules.java:20)
  | at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  | at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
  | at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:843)
  | at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:490)
  | at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:955)
  | at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:840)
  | at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:891)
  | at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:902)
  | at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
  | at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  | at org.apache.lucene.tests.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:38)
  | at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
  | at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
  | at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  | at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  | at org.apache.lucene.tests.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53)
  | at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
  | at org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
  | at org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
  | at org.apache.lucene.tests.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:47)
  | at org.junit.rules.RunRules.evaluate(RunRules.java:20)
  | at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  | at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
  | at com.carrotsearch.randomizedtesting.ThreadLeakControl.lambda$forkTimeoutingTask$0(ThreadLeakControl.java:850)
  | at java.base/java.lang.Thread.run(Thread.java:1570)

<!--EndFragment-->
</body>
</html>

And a second one:

<html>
<body>
<!--StartFragment-->


REPRODUCE WITH: ./gradlew ':x-pack:plugin:esql:test' --tests "org.elasticsearch.xpack.esql.tree.EsqlNodeSubclassTests" -Dtests.method="testReplaceChildren {class org.elasticsearch.xpack.esql.expression.function.aggregate.ToPartial}" -Dtests.seed=F05AB5B3EBF180EC -Dtests.locale=et -Dtests.timezone=Africa/Harare -Druntime.java=22
  |  
  | EsqlNodeSubclassTests > testReplaceChildren {class org.elasticsearch.xpack.esql.expression.function.aggregate.ToPartial} FAILEDT
  | java.lang.AssertionError: expected:<uMHmNHeDwzJHCUMOPrJhSNFrj> but was:<?HuQdDh.hpwQL>ualsTests
  | at __randomizedtesting.SeedInfo.seed([F05AB5B3EBF180EC:C9A516FE12F7A012]:0)
  | at org.junit.Assert.fail(Assert.java:89)t org.elasticsearch.xpack...scalar.string.SubstringTests
  | at org.junit.Assert.failNotEquals(Assert.java:835) Executing test org.elasticsearch.xpack.esql.qa.single_node.EsqlSpecIT
  | at org.junit.Assert.assertEquals(Assert.java:120)earch...operator.comparison.NotEqualsTests
  | at org.junit.Assert.assertEquals(Assert.java:146)
  | at org.elasticsearch.xpack.esql.core.tree.NodeSubclassTests.assertTransformedOrReplacedChildren(NodeSubclassTests.java:253)
  | at org.elasticsearch.xpack.esql.core.tree.NodeSubclassTests.testReplaceChildren(NodeSubclassTests.java:224)
  | at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
  | at java.base/java.lang.reflect.Method.invoke(Method.java:580)
  | at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1758)ts
  | at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:946)
  | at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:982)
  | at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:996)
  | at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  | at org.junit.rules.RunRules.evaluate(RunRules.java:20)
  | at org.apache.lucene.tests.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:48)
  | at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
  | at org.apache.lucene.tests.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:45)
  | at org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
  | at org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
  | at org.junit.rules.RunRules.evaluate(RunRules.java:20)
  | at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  | at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
  | at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:843)
  | at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:490)
  | at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:955)
  | at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:840)
  | at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:891)
  | at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:902)
  | at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
  | at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  | at org.apache.lucene.tests.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:38)
  | at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
  | at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
  | at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  | at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  | at org.apache.lucene.tests.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53)
  | at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
  | at org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
  | at org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
  | at org.apache.lucene.tests.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:47)
  | at org.junit.rules.RunRules.evaluate(RunRules.java:20)
  | at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  | at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
  | at com.carrotsearch.randomizedtesting.ThreadLeakControl.lambda$forkTimeoutingTask$0(ThreadLeakControl.java:850)
  | at java.base/java.lang.Thread.run(Thread.java:1570)
 

<br class="Apple-interchange-newline"><!--EndFragment-->
</body>
</html>
@astefan astefan added >test-failure Triaged test failures from CI :Analytics/ES|QL AKA ESQL labels Jun 30, 2024
@elasticsearchmachine elasticsearchmachine added Team:Analytics Meta label for analytical engine team (ESQL/Aggs/Geo) needs:risk Requires assignment of a risk label (low, medium, blocker) labels Jun 30, 2024
@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/es-analytical-engine (Team:Analytics)

@alex-spies alex-spies added medium-risk An open issue or test failure that is a medium risk to future releases and removed needs:risk Requires assignment of a risk label (low, medium, blocker) labels Jul 1, 2024
@alex-spies
Copy link
Contributor

testReplaceChildren is also failing for toPartial for me (once unmuted).

@alex-spies
Copy link
Contributor

Currently EsqlNodeSubclassTests are all muted; I'm unmuting all but the toPartial tests here.

@alex-spies alex-spies added low-risk An open issue or test failure that is a low risk to future releases and removed medium-risk An open issue or test failure that is a medium risk to future releases labels Jul 1, 2024
@nik9000
Copy link
Member

nik9000 commented Jul 3, 2024

If you make a test extending AbstractNodeTestCase for that particular subclass you can customize the testing somewhat and that should cause EsqlNodeSubclassTests to skip testing that subclass. AND it'll cause EsqlNodeSubclassTests to build use your test subclass to build examples of your class using your subclass. See LiteralTests for such a subclass.

I'd long forgotten about this behavior, but I think it's an escape hatch I build half a lifetime ago when working on SQL.

@dnhatn
Copy link
Member

dnhatn commented Jul 4, 2024

@nik9000 Good suggestion. I opened #110448.

dnhatn added a commit that referenced this issue Jul 5, 2024
This change makes the three-parameter constructor of ToPartial public so 
that EsqlNodeSubclassTests can pick it up properly.

Closes #110310
dnhatn added a commit to dnhatn/elasticsearch that referenced this issue Jul 5, 2024
This change makes the three-parameter constructor of ToPartial public so 
that EsqlNodeSubclassTests can pick it up properly.

Closes elastic#110310
parkertimmins pushed a commit to parkertimmins/elasticsearch that referenced this issue Jul 5, 2024
This change makes the three-parameter constructor of ToPartial public so 
that EsqlNodeSubclassTests can pick it up properly.

Closes elastic#110310
elasticsearchmachine pushed a commit that referenced this issue Jul 5, 2024
This change makes the three-parameter constructor of ToPartial public so 
that EsqlNodeSubclassTests can pick it up properly.

Closes #110310
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
:Analytics/ES|QL AKA ESQL low-risk An open issue or test failure that is a low risk to future releases Team:Analytics Meta label for analytical engine team (ESQL/Aggs/Geo) >test-failure Triaged test failures from CI
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants