You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Pavel Pereslegin (Jira)" <ji...@apache.org> on 2025/03/31 13:46:00 UTC

[jira] [Created] (IGNITE-24968) Sql. Fix flaky test ItSqlClientAsynchronousApiTest.cancelQueryDuringExecution

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)