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)