You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Roman Puchkovskiy (Jira)" <ji...@apache.org> on 2024/07/01 13:47:00 UTC
[jira] [Resolved] (IGNITE-21799) A transaction rollback fails with assertion error
[ https://issues.apache.org/jira/browse/IGNITE-21799?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Roman Puchkovskiy resolved IGNITE-21799.
----------------------------------------
Resolution: Fixed
> A transaction rollback fails with assertion error
> -------------------------------------------------
>
> Key: IGNITE-21799
> URL: https://issues.apache.org/jira/browse/IGNITE-21799
> Project: Ignite
> Issue Type: Bug
> Reporter: Andrey Mashenkov
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> A transaction rollback fails with
> {noformat}
> java.lang.AssertionError: Thread does not have allowed operations
> {noformat}
> Here is a simple reproducer below.
> You can use an`ItCommonsApiTest` to reproduce.
> {code:java}
> @Test
> public void rollbackAsync() {
> Ignite node = CLUSTER.aliveNode();
> sql("CREATE TABLE IF NOT EXISTS TEST(ID INT PRIMARY KEY, VAL0 INT)");
> KeyValueView<Tuple, Tuple> view1 = node.tables().table("TEST").keyValueView();
> AtomicReference<CompletableFuture<Void>> rollbackFut = new AtomicReference<>();
>
> Transaction tx = node.transactions().begin();
> view1.getAsync(tx, Tuple.create().set("id", 101))
> .handle((unused, err) -> {
> rollbackFut.set(tx.rollbackAsync()); // unconditional roll back
> return null;
> }).join();
> rollbackFut.get().join(); // <- FAILS
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)