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 
java.base@21.0.1/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 
java.base@21.0.1/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)

Reply via email to