Skip to content

Flaky IT: ITQueryRetryTestOnMissingSegments.testWithRetriesDisabledPartialResultAllowed #12733

@paul-rogers

Description

@paul-rogers

The IT ITQueryRetryTestOnMissingSegments.testWithRetriesDisabledPartialResultAllowed failed in (Compile=openjdk8, Run=openjdk8) query retry integration test for missing segments with this error:

[ERROR]   ITQueryRetryTestOnMissingSegments.testWithRetriesDisabledPartialResultAllowed:122->testQueries:141->testQueries:216 At least one query is expected to return correct results. expected [true] but found [false]

Details:

2022-06-30T22:20:30,308 INFO [main] org.apache.druid.testing.utils.ITRetryUtil - Trying attempt[3/240]...
2022-06-30T22:20:30,469 INFO [main] org.apache.druid.testing.utils.LoggerListener - Starting [org.apache.druid.tests.query.ITQueryRetryTestOnMissingSegments.testWithRetriesDisabledPartialResultAllowed]
2022-06-30T22:20:44,548 ERROR [main] org.apache.druid.testing.utils.LoggerListener - Failed [org.apache.druid.tests.query.ITQueryRetryTestOnMissingSegments.testWithRetriesDisabledPartialResultAllowed]
java.lang.AssertionError: At least one query is expected to return correct results. expected [true] but found [false]
	at org.testng.Assert.fail(Assert.java:99) ~[testng-7.3.0.jar:?]
	at org.testng.Assert.failNotEquals(Assert.java:1037) ~[testng-7.3.0.jar:?]
	at org.testng.Assert.assertTrue(Assert.java:45) ~[testng-7.3.0.jar:?]
	at org.apache.druid.tests.query.ITQueryRetryTestOnMissingSegments.testQueries(ITQueryRetryTestOnMissingSegments.java:216) ~[test-classes/:?]
	at org.apache.druid.tests.query.ITQueryRetryTestOnMissingSegments.testQueries(ITQueryRetryTestOnMissingSegments.java:141) ~[test-classes/:?]
	at org.apache.druid.tests.query.ITQueryRetryTestOnMissingSegments.testWithRetriesDisabledPartialResultAllowed(ITQueryRetryTestOnMissingSegments.java:122) ~[test-classes/:?]

The ITs generally try to compensate for flaky tests by retrying. This test retried only 3 of 240 times before it gave up. Is that another error? Though, one could argue that the tests should work the first time, else users would have to design their apps to keep "dialing for yes" on each API call.

The PR in question changed some code in the Calcite planner, not in the area of segment loading. This test passed on previous builds on the same branch. The same IT passed on Java 11. Conclusion: test failure is spurious.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions