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

[BUG] org.opensearch.test.rest.ClientYamlTestSuiteIT.test {p0=search.aggregation/230_composite/composite aggregation date_histogram profile shows filter rewrite info} is flaky #13971

Closed
reta opened this issue Jun 4, 2024 · 5 comments · Fixed by #14201
Assignees
Labels
bug Something isn't working flaky-test Random test failure that succeeds on second run Search:Aggregations

Comments

@reta
Copy link
Collaborator

reta commented Jun 4, 2024

Describe the bug

The test case org.opensearch.test.rest.ClientYamlTestSuiteIT.test {p0=search.aggregation/230_composite/composite aggregation date_histogram profile shows filter rewrite info} is flaky:

java.lang.AssertionError: Failure at [search.aggregation/230_composite:1126]: profile.shards.0.aggregations.0.debug.optimized_segments didn't match expected value:
profile.shards.0.aggregations.0.debug.optimized_segments: expected Integer [1] but was Integer [2]

	at __randomizedtesting.SeedInfo.seed([AF3CFB99BA9F2DEE:2768C44314634016]:0)
	at org.opensearch.test.rest.yaml.OpenSearchClientYamlSuiteTestCase.executeSection(OpenSearchClientYamlSuiteTestCase.java:460)
	at org.opensearch.test.rest.yaml.OpenSearchClientYamlSuiteTestCase.test(OpenSearchClientYamlSuiteTestCase.java:433)
	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:1750)
	at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:938)
	at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:974)
	at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:988)
	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:368)
	at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:817)
	at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:468)
	at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:947)
	at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:832)
	at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:883)
	at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:894)
	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:368)
	at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.AssertionError: profile.shards.0.aggregations.0.debug.optimized_segments didn't match expected value:
profile.shards.0.aggregations.0.debug.optimized_segments: expected Integer [1] but was Integer [2]

	at org.opensearch.test.rest.yaml.section.MatchAssertion.doAssert(MatchAssertion.java:115)
	at org.opensearch.test.rest.yaml.section.Assertion.execute(Assertion.java:126)
	at org.opensearch.test.rest.yaml.OpenSearchClientYamlSuiteTestCase.executeSection(OpenSearchClientYamlSuiteTestCase.java:449)
	... 39 more

Related component

Search:Aggregations

To Reproduce

./gradlew ':rest-api-spec:yamlRestTest' --tests "org.opensearch.test.rest.ClientYamlTestSuiteIT" -Dtests.method="test {p0=search.aggregation/230_composite/composite aggregation date_histogram profile shows filter rewrite info}" -Dtests.seed=AF3CFB99BA9F2DEE 

Expected behavior

The test must always pass

Additional Details

Plugins
Standard

Screenshots
If applicable, add screenshots to help explain your problem.

Host/Environment (please complete the following information):

  • CI

Additional context

@reta reta added bug Something isn't working untriaged flaky-test Random test failure that succeeds on second run labels Jun 4, 2024
@reta
Copy link
Collaborator Author

reta commented Jun 4, 2024

@bowenlan-amzn it seems to be caused by #13317, please take a look so we could revert before the release

@bowenlan-amzn
Copy link
Member

@reta will fix this before the 2.15 release.

@mch2
Copy link
Member

mch2 commented Jun 11, 2024

@bowenlan-amzn any update on this flaky? I'd prefer we know whats going on here before extending the optimization to range aggs with #13865

@bowenlan-amzn
Copy link
Member

@mch2 the problem this seems to me is the indexing logic not deterministic. We are indexing like 5 documents here, but in the end there are more than 1 segment.
I will confirm this behavior, and the fix would just be updating the test to not assert optimized_segments =1 but >1

@mch2
Copy link
Member

mch2 commented Jun 11, 2024

@mch2 the problem this seems to me is the indexing logic not deterministic. We are indexing like 5 documents here, but in the end there are more than 1 segment. I will confirm this behavior, and the fix would just be updating the test to not assert optimized_segments =1 but >1

Hmm i suspect a scheduled refresh is occurring that would result in two segments. You can disable this by setting refresh.interval: -1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working flaky-test Random test failure that succeeds on second run Search:Aggregations
Projects
Archived in project
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants