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

Pavel Tupitsyn reassigned IGNITE-27091:
---------------------------------------

    Assignee: Pavel Tupitsyn

> Java thin. Rollback of client transaction on a closed channel should not 
> throw exceptions
> -----------------------------------------------------------------------------------------
>
>                 Key: IGNITE-27091
>                 URL: https://issues.apache.org/jira/browse/IGNITE-27091
>             Project: Ignite
>          Issue Type: Improvement
>          Components: thin clients ai3
>    Affects Versions: 3.1
>            Reporter: Pavel Pereslegin
>            Assignee: Pavel Tupitsyn
>            Priority: Major
>              Labels: ignite-3
>
> Currently, if the channel is closed (for example, if cluster node was 
> restarted), the transaction rollback fails with the error "Channel is closed".
> It seems like an exception shouldn't be thrown in this case. For example, 
> this wouldn't be expected by a user which uses a finally block to rollback a 
> transaction.
> Reproducer (for RetryPolicyTest)
> {code:java}
> @Test
> public void testTransactionRollbackOnClosedChannel() {
>     initServer(reqId -> reqId % 4 == 0);
>     var plc = new TestRetryPolicy();
>     try (var client = getClient(plc)) {
>         RecordView<Tuple> recView = client.tables().table("t").recordView();
>         Transaction tx = client.transactions().begin();
>         try {
>             ClientLazyTransaction.ensureStarted(tx, ((TcpIgniteClient) 
> client).channel()).get1().join();
>             assertThrows(IgniteException.class, () -> recView.get(tx, 
> Tuple.create().set("id", 1)));
>         } finally {
>             tx.rollback(); // fails with "Channel is closed"
>         }
>     }
> }
> {code}



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

Reply via email to