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

Denis Chudov updated IGNITE-27411:
----------------------------------
    Description: 
In some cases user may get something like this:
{code:java}
SQL query execution error Transaction is already finished 
txId=[019b212c-5d7b-0000-399b-326d00000001, txState=FINISHING]{code}
*Scenario:*
 * in case of transaction exception, post-enlist will rollback the transaction 
on coordinator;
 * transaction is transitioned into state FINISHING, rollback is in progress;
 * parallel request (sql, data streamer, etc.) can't be made because of 
finishing state and instantly fails with "Transaction is already finished" 
exception, which is passed to the user and the original exception that caused 
rollback is lost.

*Possible solution:*

in case of finishing state we should wait for completion of finish future. The 
tx meta with final state should contain the information about original 
exception (see IGNITE-27386 ), and this exception should be passed to the user.

  was:
In some cases user may get something like this:

 
{code:java}
SQL query execution error Transaction is already finished 
txId=[019b212c-5d7b-0000-399b-326d00000001, txState=FINISHING]{code}
 

 

*Scenario:*
 * in case of transaction exception, post-enlist will rollback the transaction 
on coordinator;
 * transaction is transitioned into state FINISHING, rollback is in progress;
 * parallel request (sql, data streamer, etc.) can't be made because of 
finishing state and instantly fails with "Transaction is already finished" 
exception, which is passed to the user and the original exception that caused 
rollback is lost.

*Possible solution:*

in case of finishing state we should wait for completion of finish future. The 
tx meta with final state should contain the information about original 
exception (see IGNITE-27386 ), and this exception should be passed to the user.


> Transaction exception may be lost for user
> ------------------------------------------
>
>                 Key: IGNITE-27411
>                 URL: https://issues.apache.org/jira/browse/IGNITE-27411
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Denis Chudov
>            Priority: Major
>              Labels: ignite-3
>
> In some cases user may get something like this:
> {code:java}
> SQL query execution error Transaction is already finished 
> txId=[019b212c-5d7b-0000-399b-326d00000001, txState=FINISHING]{code}
> *Scenario:*
>  * in case of transaction exception, post-enlist will rollback the 
> transaction on coordinator;
>  * transaction is transitioned into state FINISHING, rollback is in progress;
>  * parallel request (sql, data streamer, etc.) can't be made because of 
> finishing state and instantly fails with "Transaction is already finished" 
> exception, which is passed to the user and the original exception that caused 
> rollback is lost.
> *Possible solution:*
> in case of finishing state we should wait for completion of finish future. 
> The tx meta with final state should contain the information about original 
> exception (see IGNITE-27386 ), and this exception should be passed to the 
> user.



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

Reply via email to