You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Roman Puchkovskiy (Jira)" <ji...@apache.org> on 2024/12/16 11:09:00 UTC

[jira] [Updated] (IGNITE-24002) SELECT in finished RO transaction hangs

     [ https://issues.apache.org/jira/browse/IGNITE-24002?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Roman Puchkovskiy updated IGNITE-24002:
---------------------------------------
    Description: 
This can be reproduced test_filter_clause.test with the following patch:

 

Subject: [PATCH] 
---
Index: modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/sqllogic/ItSqlLogicTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/sqllogic/ItSqlLogicTest.java b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/sqllogic/ItSqlLogicTest.java
--- a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/sqllogic/ItSqlLogicTest.java    (revision 60ba00c032275813e942e928d95b4d3cd603815b)
+++ b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/sqllogic/ItSqlLogicTest.java    (date 1734346968854)
@@ -142,7 +142,7 @@
 @Tag("sqllogic")
 @ExtendWith(\{SystemPropertiesExtension.class, WorkDirectoryExtension.class})
 @WithSystemProperty(key = "IMPLICIT_PK_ENABLED", value = "true")
-@SqlLogicTestEnvironment(scriptsRoot = "src/integrationTest/sql/group1")
+@SqlLogicTestEnvironment(scriptsRoot = "src/integrationTest/sql/group1", regex = ".*test_filter_clause.*")
 public class ItSqlLogicTest extends BaseIgniteAbstractTest {
     private static final String SQL_LOGIC_TEST_INCLUDE_SLOW = "SQL_LOGIC_TEST_INCLUDE_SLOW";
 
@@ -349,7 +349,7 @@
                 .clusterConfiguration("ignite {"
                         + "metaStorage.idleSyncTimeInterval: " + METASTORAGE_IDLE_SYNC_TIME_INTERVAL_MS + ",\n"
                         // TODO: Set dataAvailabilityTime to 1010 after IGNITE-24002 is fixed.
-                        + "gc.lowWatermark.dataAvailabilityTime: 30010,\n"
+                        + "gc.lowWatermark.dataAvailabilityTime: 1010,\n"
                         + "gc.lowWatermark.updateInterval: 3000,\n"
                         + "metrics.exporters.logPush.exporterName: logPush,\n"
                         + "metrics.exporters.logPush.period: 5000\n"

 

The hanging query is this one: 

SELECT
  SUM(i) FILTER (WHERE i < (select i from t as t2 where t.i = t2.i))
FROM t;

It usually takes more than 2 seconds to execute on my machine. RO transactions by default get timeout equal to dataAvailabilityTime, so in this case it's roughly 1 second and the transaction gets aborted before the query finishes execution. This seems to be the cause as, if dataAvailabilityTime is increased to 3 seconds, this query does not hang anymore.

I suspect that inflights are the cause of this problem. This might have something to do with IGNITE-23980

> SELECT in finished RO transaction hangs
> ---------------------------------------
>
>                 Key: IGNITE-24002
>                 URL: https://issues.apache.org/jira/browse/IGNITE-24002
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Roman Puchkovskiy
>            Priority: Major
>              Labels: ignite-3
>
> This can be reproduced test_filter_clause.test with the following patch:
>  
> Subject: [PATCH] 
> ---
> Index: modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/sqllogic/ItSqlLogicTest.java
> IDEA additional info:
> Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
> <+>UTF-8
> ===================================================================
> diff --git a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/sqllogic/ItSqlLogicTest.java b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/sqllogic/ItSqlLogicTest.java
> --- a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/sqllogic/ItSqlLogicTest.java    (revision 60ba00c032275813e942e928d95b4d3cd603815b)
> +++ b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/sqllogic/ItSqlLogicTest.java    (date 1734346968854)
> @@ -142,7 +142,7 @@
>  @Tag("sqllogic")
>  @ExtendWith(\{SystemPropertiesExtension.class, WorkDirectoryExtension.class})
>  @WithSystemProperty(key = "IMPLICIT_PK_ENABLED", value = "true")
> -@SqlLogicTestEnvironment(scriptsRoot = "src/integrationTest/sql/group1")
> +@SqlLogicTestEnvironment(scriptsRoot = "src/integrationTest/sql/group1", regex = ".*test_filter_clause.*")
>  public class ItSqlLogicTest extends BaseIgniteAbstractTest {
>      private static final String SQL_LOGIC_TEST_INCLUDE_SLOW = "SQL_LOGIC_TEST_INCLUDE_SLOW";
>  
> @@ -349,7 +349,7 @@
>                  .clusterConfiguration("ignite {"
>                          + "metaStorage.idleSyncTimeInterval: " + METASTORAGE_IDLE_SYNC_TIME_INTERVAL_MS + ",\n"
>                          // TODO: Set dataAvailabilityTime to 1010 after IGNITE-24002 is fixed.
> -                        + "gc.lowWatermark.dataAvailabilityTime: 30010,\n"
> +                        + "gc.lowWatermark.dataAvailabilityTime: 1010,\n"
>                          + "gc.lowWatermark.updateInterval: 3000,\n"
>                          + "metrics.exporters.logPush.exporterName: logPush,\n"
>                          + "metrics.exporters.logPush.period: 5000\n"
>  
> The hanging query is this one: 
> SELECT
>   SUM(i) FILTER (WHERE i < (select i from t as t2 where t.i = t2.i))
> FROM t;
> It usually takes more than 2 seconds to execute on my machine. RO transactions by default get timeout equal to dataAvailabilityTime, so in this case it's roughly 1 second and the transaction gets aborted before the query finishes execution. This seems to be the cause as, if dataAvailabilityTime is increased to 3 seconds, this query does not hang anymore.
> I suspect that inflights are the cause of this problem. This might have something to do with IGNITE-23980



--
This message was sent by Atlassian Jira
(v8.20.10#820010)