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

Ilya Shishkov updated IGNITE-25681:
-----------------------------------
    Description: 
If some delays (eg. GC-pause) happens during transaction initialization in the 
same way as described in IGNITE-25538, then you can not start any cache 
operation (i.e. implicit transaction) in a tread with such stale transaction.

1. Start server node.
2. Start tx with timeout (do not use 'try-with resources').
3. Inject sleep in IgniteTxManager#onCreated after isCompleted check with value 
slightly less, than tx timeout.
4. Wait for tx completion with timeout error.
5. Rollback transaction instead of closing it.
6. Transaction become stale now, but don't hold any locks.
7. You can not start any implicit transaction ever.
8. But, explicit transaction can be started.

*Reproducer:*  [^RollbackTest.patch]

  was:
If some delays (eg. GC-pause) happens during transaction initialization in the 
same way as described in IGNITE-25538, then you can not start any cache 
operation (i.e. implicit transaction) in a tread with such stale transaction.

1. Start server node.
2. Start tx with timeout (do not use 'try-with resources').
3. Inject sleep in IgniteTxManager#onCreated after isCompleted check with value 
slightly less, than tx timeout.
4. Wait for tx completion with timeout error.
5. Rollback transaction insead of closing it.
6. You can not start any implicit transaction ever.
7. But, explicit transaction can be started.

*Reproducer:*  [^RollbackTest.patch] 


> Can not perform cache operation in case of stale transaction
> ------------------------------------------------------------
>
>                 Key: IGNITE-25681
>                 URL: https://issues.apache.org/jira/browse/IGNITE-25681
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Ilya Shishkov
>            Priority: Major
>              Labels: ise
>         Attachments: RollbackTest.patch
>
>
> If some delays (eg. GC-pause) happens during transaction initialization in 
> the same way as described in IGNITE-25538, then you can not start any cache 
> operation (i.e. implicit transaction) in a tread with such stale transaction.
> 1. Start server node.
> 2. Start tx with timeout (do not use 'try-with resources').
> 3. Inject sleep in IgniteTxManager#onCreated after isCompleted check with 
> value slightly less, than tx timeout.
> 4. Wait for tx completion with timeout error.
> 5. Rollback transaction instead of closing it.
> 6. Transaction become stale now, but don't hold any locks.
> 7. You can not start any implicit transaction ever.
> 8. But, explicit transaction can be started.
> *Reproducer:*  [^RollbackTest.patch]



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

Reply via email to