[ 
https://issues.apache.org/jira/browse/IGNITE-27386?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Denis Chudov updated IGNITE-27386:
----------------------------------
    Description: 
*Description*
In case of exceptional tx abortion we can't restore an actual reason why it 
happens. The only clue is a respond to user that may be lost. We have to store 
in volatile txs' map such information within {{{}TxStateMeta{}}}:
 # Exception's class type and error code.
 # Trace ID.
 # Exception's message.

*Motivation*
We need more information in case of exceptionally aborted transactions that 
available some time for analysis.

*Definition of done*
{{TxStateMeta}} now contains the mentioned information in case of exceptional 
tx abortion.

*Implementation notes*

Transaction may be aborted on coordinator or on commit partition. In case of 
non-user abortion on coordinator (see InternalTableImpl#postEnlist, 
TxManagerImpl#finish, TransactionStateResolver#processTxStateRequest) or on 
commit partition during transaction recovery 
(TxRecoveryEngine#triggerTxRecovery) tx state meta (including FINISHING state 
and final states; see also exception parameters in 
TransactionInflights.ReadWriteTxContext#completeFinishInProgressFuture) should 
be updated with proper exception.

Also PartitionReplicaListener#appendTxCommand may throw exception "Transaction 
is already finished" without proper cause, maybe similar problem in other 
places.

  was:
*Description*
In case of exceptional tx abortion we can't restore an actual reason why it 
happens. The only clue is a respond to user that may be lost. We have to store 
in volatile txs' map such information within {{{}TxStateMeta{}}}:
 # Exception's class type and error code.
 # Trace ID.
 # Exception's message.

*Motivation*
We need more information in case of exceptionally aborted transactions that 
available some time for analysis.

*Definition of done*
{{TxStateMeta}} now contains the mentioned information in case of exceptional 
tx abortion.

*Implementation notes*

Transaction may be aborted on coordinator or on commit partition. In case of 
non-user abortion on coordinator (see InternalTableImpl#postEnlist, 
TxManagerImpl#finish, TransactionStateResolver#processTxStateRequest) or on 
commit partition during transaction recovery 
(TxRecoveryEngine#triggerTxRecovery) tx state meta (including FINISHING state 
and final states; see also exception parameters in 
TransactionInflights.ReadWriteTxContext#completeFinishInProgressFuture) should 
be updated with proper exception.


> Add to TxStateMeta reasoning why a transaction was exceptionally aborted
> ------------------------------------------------------------------------
>
>                 Key: IGNITE-27386
>                 URL: https://issues.apache.org/jira/browse/IGNITE-27386
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Mikhail Efremov
>            Assignee: Anton Laletin
>            Priority: Major
>              Labels: ignite-3
>
> *Description*
> In case of exceptional tx abortion we can't restore an actual reason why it 
> happens. The only clue is a respond to user that may be lost. We have to 
> store in volatile txs' map such information within {{{}TxStateMeta{}}}:
>  # Exception's class type and error code.
>  # Trace ID.
>  # Exception's message.
> *Motivation*
> We need more information in case of exceptionally aborted transactions that 
> available some time for analysis.
> *Definition of done*
> {{TxStateMeta}} now contains the mentioned information in case of exceptional 
> tx abortion.
> *Implementation notes*
> Transaction may be aborted on coordinator or on commit partition. In case of 
> non-user abortion on coordinator (see InternalTableImpl#postEnlist, 
> TxManagerImpl#finish, TransactionStateResolver#processTxStateRequest) or on 
> commit partition during transaction recovery 
> (TxRecoveryEngine#triggerTxRecovery) tx state meta (including FINISHING state 
> and final states; see also exception parameters in 
> TransactionInflights.ReadWriteTxContext#completeFinishInProgressFuture) 
> should be updated with proper exception.
> Also PartitionReplicaListener#appendTxCommand may throw exception 
> "Transaction is already finished" without proper cause, maybe similar problem 
> in other places.



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

Reply via email to