[
https://issues.apache.org/jira/browse/IGNITE-20779?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vladislav Pyatkov updated IGNITE-20779:
---------------------------------------
Description:
h3. Motivation
The well-known pattern is used in ReadWriteTransactionImpl#finish and
ReadWriteTransactionImpl#enlist, but it is violated. The code checks the
transaction state, but it does not always change under the write lock to the
final state (COMMITED, ABORTED). In general, we can change the transaction
state to final or FINISHING.
h3. Implementation note
# Add checking the FINISHING state to the method
ReadWriteTransactionImpl#checkEnlistReady
# Add checking the FINISHING state to the method ReadWriteTransactionImpl#finish
was:
h3. Motivation
The well-known pattern is used in ReadWriteTransactionImpl#finish and
ReadWriteTransactionImpl#enlist, but it is violated. The code checks the
transaction state, but it does not always change under the write lock to the
final state (COMMITED, ABORTED). In general, we can change the transaction
state to final or COMMITING.
h3. Implementation note
# Add checking the COMMITING state to the method
ReadWriteTransactionImpl#checkEnlistReady
# Add checking the COMMITING state to the method ReadWriteTransactionImpl#finish
> Transaction operation might throw no exception, but is not be considered
> ------------------------------------------------------------------------
>
> Key: IGNITE-20779
> URL: https://issues.apache.org/jira/browse/IGNITE-20779
> Project: Ignite
> Issue Type: Bug
> Reporter: Vladislav Pyatkov
> Priority: Major
> Labels: ignite-3
>
> h3. Motivation
> The well-known pattern is used in ReadWriteTransactionImpl#finish and
> ReadWriteTransactionImpl#enlist, but it is violated. The code checks the
> transaction state, but it does not always change under the write lock to the
> final state (COMMITED, ABORTED). In general, we can change the transaction
> state to final or FINISHING.
> h3. Implementation note
> # Add checking the FINISHING state to the method
> ReadWriteTransactionImpl#checkEnlistReady
> # Add checking the FINISHING state to the method
> ReadWriteTransactionImpl#finish
--
This message was sent by Atlassian Jira
(v8.20.10#820010)