[
https://issues.apache.org/jira/browse/IGNITE-21371?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kirill Tkalenko updated IGNITE-21371:
-------------------------------------
Description:
It was discovered that in
*org.apache.ignite.internal.sql.engine.ItDmlTest#testMerge*, queries *MERGE*
are executed in an implicit transaction that does not decrease the RW
transactions counter in
*org.apache.ignite.internal.index.IndexNodeFinishedRwTransactionsChecker#decrementRwTxCount*,
because of this, tests in which indexes are created can freeze.
If the test is turned on,
*org.apache.ignite.internal.sql.engine.ItDmlTest#rangeReadAndExclusiveInsert*
starts to fail.
h3. What is found out:
For an implicit RW transaction, *txCoordinatorId* may change because of this,
the counter cannot decrease.
This happens because the *org.apache.ignite.internal.tx.TxStateMeta* is updated
in
*org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener#processRequest*
and changes *TxStateMeta#txCoordinatorId* to another, even if the transaction
is processed on the node that created it.
Presumably this is due to the fact that fragments of the transaction are
executed on different nodes; perhaps to fix it it will be enough to add
*txCoordinatorId* in the messages.
was:
It was discovered that in
*org.apache.ignite.internal.sql.engine.ItDmlTest#testMerge*, queries *MERGE*
are executed in an implicit transaction that does not decrease the RW
transactions counter in
*org.apache.ignite.internal.index.IndexNodeFinishedRwTransactionsChecker#decrementRwTxCount*,
because of this, tests in which indexes are created can freeze.
If the test is turned on,
*org.apache.ignite.internal.sql.engine.ItDmlTest#rangeReadAndExclusiveInsert*
starts to fail.
> Fix ItDmlTest#testMerge
> -----------------------
>
> Key: IGNITE-21371
> URL: https://issues.apache.org/jira/browse/IGNITE-21371
> Project: Ignite
> Issue Type: Bug
> Reporter: Kirill Tkalenko
> Priority: Major
> Labels: ignite-3
>
> It was discovered that in
> *org.apache.ignite.internal.sql.engine.ItDmlTest#testMerge*, queries *MERGE*
> are executed in an implicit transaction that does not decrease the RW
> transactions counter in
> *org.apache.ignite.internal.index.IndexNodeFinishedRwTransactionsChecker#decrementRwTxCount*,
> because of this, tests in which indexes are created can freeze.
> If the test is turned on,
> *org.apache.ignite.internal.sql.engine.ItDmlTest#rangeReadAndExclusiveInsert*
> starts to fail.
> h3. What is found out:
> For an implicit RW transaction, *txCoordinatorId* may change because of this,
> the counter cannot decrease.
> This happens because the *org.apache.ignite.internal.tx.TxStateMeta* is
> updated in
> *org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener#processRequest*
> and changes *TxStateMeta#txCoordinatorId* to another, even if the
> transaction is processed on the node that created it.
> Presumably this is due to the fact that fragments of the transaction are
> executed on different nodes; perhaps to fix it it will be enough to add
> *txCoordinatorId* in the messages.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)