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

Kirill Tkalenko updated IGNITE-29178:
-------------------------------------
    Description: 
A {{SELECT}} query can hang when a topology change starts while a transaction 
is active.

Reproduction scenario:{{{{}}{}}}
{code:java}
ignite.createCache("unrelated");

sql("CREATE TABLE test (id INT PRIMARY KEY, val INT)");
sql("INSERT INTO test VALUES (1, 0)");

try (Transaction tx = ignite.transactions().txStart()) {
    sql("UPDATE test SET val = 1 WHERE id = 1");

    runAsync(() -> ignite.destroyCache("unrelated"));
    waitForCacheStopExchangeToStart();
    
    sql("SELECT * FROM test"); // Hangs.
    
    tx.commit();
}{code}
 

The query remains blocked until the transaction times out. With no transaction 
timeout, it can hang indefinitely.

  was:
A {{SELECT}} query can hang when a topology change starts while a transaction 
is active.

Reproduction scenario:{{{}{}}}
{code:java}

{code}
{{ignite.createCache("unrelated"); }}

{{sql("CREATE TABLE test (id INT PRIMARY KEY, val INT)"); }}
{{sql("INSERT INTO test VALUES (1, 0)"); }}

{{try (Transaction tx = ignite.transactions().txStart()) { }}
{{    sql("UPDATE test SET val = 1 WHERE id = 1"); }}
{{    }}
{{    runAsync(() -> ignite.destroyCache("unrelated")); }}

{{    waitForCacheStopExchangeToStart(); }}

{{    sql("SELECT * FROM test"); // Hangs. }}

{{    tx.commit(); }}
{{}}}

 

The query remains blocked until the transaction times out. With no transaction 
timeout, it can hang indefinitely.


> SQL Calcite: SELECT hangs during a topology change within a transaction
> -----------------------------------------------------------------------
>
>                 Key: IGNITE-29178
>                 URL: https://issues.apache.org/jira/browse/IGNITE-29178
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: 2.18
>            Reporter: Kirill Tkalenko
>            Assignee: Kirill Tkalenko
>            Priority: Major
>              Labels: calcite, sql, transaction
>         Attachments: SqlTransactionsCacheDestroyTest.java
>
>
> A {{SELECT}} query can hang when a topology change starts while a transaction 
> is active.
> Reproduction scenario:{{{{}}{}}}
> {code:java}
> ignite.createCache("unrelated");
> sql("CREATE TABLE test (id INT PRIMARY KEY, val INT)");
> sql("INSERT INTO test VALUES (1, 0)");
> try (Transaction tx = ignite.transactions().txStart()) {
>     sql("UPDATE test SET val = 1 WHERE id = 1");
>     runAsync(() -> ignite.destroyCache("unrelated"));
>     waitForCacheStopExchangeToStart();
>     
>     sql("SELECT * FROM test"); // Hangs.
>     
>     tx.commit();
> }{code}
>  
> The query remains blocked until the transaction times out. With no 
> transaction timeout, it can hang indefinitely.



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

Reply via email to