[
https://issues.apache.org/jira/browse/IGNITE-11614?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16808679#comment-16808679
]
Alexey Goncharuk commented on IGNITE-11614:
-------------------------------------------
Looks like there this has been broken by IGNITE-6827. In the attached test
scenario we have successfully completed the prepare step, so the timeout object
has been removed.
On commit cache store exception occurs, and when we get to
{{GridNearTxLocal#close(boolean)}} method, {{trackTimeout}} is {{true}}, but
the timeout object is already removed, so we do not call
{{rollbackNearTxLocalAsync(clearThreadMap, false).get()}}.
I am not sure yet how this should be fixed. Firs idea is to reset
{{trackTimeout}} flag once the timeout object is removed. Another one is to
check if state is equal to {{MARKED_ROLLBACK}}.
[~ascherbakov], what do you think?
> Transaction with timeout on cache hangs after cache store failure
> -----------------------------------------------------------------
>
> Key: IGNITE-11614
> URL: https://issues.apache.org/jira/browse/IGNITE-11614
> Project: Ignite
> Issue Type: Bug
> Affects Versions: 2.7
> Reporter: Anton Kurbanov
> Assignee: Alexey Goncharuk
> Priority: Major
> Attachments: CacheStoreTxPutAllMultiNodeTest.java
>
>
> If CacheStore fails before/during transaction commit, transaction with set
> timeout remains active.
> Setting cfg.setTransactionConfiguration(new
> TransactionConfiguration().setTxTimeoutOnPartitionMapExchange(5000)); fixes
> the issue in test.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)