Pavel Tupitsyn created IGNITE-28107:
---------------------------------------

             Summary: C++: Rollback of client transaction on a closed channel 
should not throw exceptions
                 Key: IGNITE-28107
                 URL: https://issues.apache.org/jira/browse/IGNITE-28107
             Project: Ignite
          Issue Type: Improvement
          Components: thin clients ai3
    Affects Versions: 3.1
            Reporter: Pavel Tupitsyn
            Assignee: Pavel Tupitsyn
             Fix For: 3.2


Currently, if the client is closed (for example, if cluster node was restarted, 
or if the connection was lost), the transaction rollback fails with an error.
In fact, the server rolls back all transactions when a client disconnects, so 
we should not throw an exception.

Reproducer:
{code}
        [Test]
        public async Task TestRollBackOnClosedConnectionDoesNotThrow()
        {
            using var client = await IgniteClient.StartAsync(GetConfig());
            await using var tx = await client.Transactions.BeginAsync();
            await TestUtils.ForceLazyTxStart(tx, client);

            // ReSharper disable once DisposeOnUsingVariable
            client.Dispose();

            Assert.DoesNotThrowAsync(() => tx.RollbackAsync());
        }
{code}



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

Reply via email to