[ 
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)

Reply via email to