Pavel Pereslegin created IGNITE-24968:
-----------------------------------------
Summary: Sql. Fix flaky test
ItSqlClientAsynchronousApiTest.cancelQueryDuringExecution
Key: IGNITE-24968
URL: https://issues.apache.org/jira/browse/IGNITE-24968
Project: Ignite
Issue Type: Bug
Components: sql
Reporter: Pavel Pereslegin
ItSqlClientAsynchronousApiTest.cancelQueryDuringExecution test has flaky
failures on TeamCity:
https://ci.ignite.apache.org/project.html?projectId=ApacheIgnite3xGradle_Test_IntegrationTests&buildTypeId=&tab=testDetails&testNameId=-5451701318733870746&order=TEST_STATUS_DESC&branch_ApacheIgnite3xGradle_Test_IntegrationTests=__all_branches__&itemsCount=50
{noformat}
java.util.concurrent.TimeoutException: cancelQueryDuringExecution() timed out
after 10 minutes
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
Suppressed: org.opentest4j.AssertionFailedError: Unexpected exception
type thrown, expected: <org.apache.ignite.sql.SqlException> but was:
<java.lang.InterruptedException>
at
app//org.apache.ignite.internal.sql.engine.util.SqlTestUtils.assertThrowsSqlException(SqlTestUtils.java:161)
at
app//org.apache.ignite.internal.sql.engine.util.SqlTestUtils.assertThrowsSqlException(SqlTestUtils.java:143)
at
app//org.apache.ignite.internal.sql.engine.util.SqlTestUtils.expectQueryCancelled(SqlTestUtils.java:570)
at
app//org.apache.ignite.internal.sql.api.ItSqlApiBaseTest.cancelQueryDuringExecution(ItSqlApiBaseTest.java:1309)
at
[email protected]/java.lang.reflect.Method.invoke(Method.java:580)
... 2 more
Caused by: java.lang.InterruptedException
at
java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:386)
at
java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073)
at
org.apache.ignite.internal.util.IgniteUtils.getInterruptibly(IgniteUtils.java:820)
at
org.apache.ignite.internal.sql.SyncResultSetAdapter.sync(SyncResultSetAdapter.java:84)
at
org.apache.ignite.internal.sql.SyncResultSetAdapter$IteratorImpl.hasNext(SyncResultSetAdapter.java:125)
at
org.apache.ignite.internal.sql.SyncResultSetAdapter.hasNext(SyncResultSetAdapter.java:94)
at
org.apache.ignite.internal.sql.api.ItSqlApiBaseTest.lambda$cancelQueryDuringExecution$45(ItSqlApiBaseTest.java:1310)
... 7 more
Suppressed: org.awaitility.core.ConditionTimeoutException: Assertion
condition defined as a Lambda expression in
org.apache.ignite.internal.sql.api.ItSqlClientAsynchronousApiTest
Expected: is <0>
but: was <1> within 10 seconds.
at
app//org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:167)
at
app//org.awaitility.core.AssertionCondition.await(AssertionCondition.java:119)
at
app//org.awaitility.core.AssertionCondition.await(AssertionCondition.java:31)
at
app//org.awaitility.core.ConditionFactory.until(ConditionFactory.java:1160)
at
app//org.awaitility.core.ConditionFactory.untilAsserted(ConditionFactory.java:790)
at
app//org.apache.ignite.internal.sql.api.ItSqlClientAsynchronousApiTest.checkResourceCleanup(ItSqlClientAsynchronousApiTest.java:54)
at
[email protected]/java.lang.reflect.Method.invoke(Method.java:580)
... 2 more
Caused by: java.lang.AssertionError:
Expected: is <0>
but: was <1>
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6)
at
org.apache.ignite.internal.sql.api.ItSqlClientAsynchronousApiTest.lambda$checkResourceCleanup$0(ItSqlClientAsynchronousApiTest.java:54)
at
org.awaitility.core.AssertionCondition.lambda$new$0(AssertionCondition.java:53)
at
org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:248)
at
org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:235)
at
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
{noformat}
It seems that in some cases canceling a query from a thin client doesn't work.
The consequence of the fact that the test failed to kill the query is the
failure of the remaining tests in this suite (the resource was not cleared on
the server).
{noformat}
ItSqlClientAsynchronousApiTest.cancelStatement
ItSqlClientAsynchronousApiTest.pageSequence
ItSqlClientAsynchronousApiTest.cancelQueryString
{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)