ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Valentin Kulichenko (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-2797) Prepare and finish future never time out
Date Thu, 17 Mar 2016 06:50:33 GMT

    [ https://issues.apache.org/jira/browse/IGNITE-2797?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15198851#comment-15198851

Valentin Kulichenko commented on IGNITE-2797:

I also noticed a bug in timeout logic for optimistic transactions. In {{IgniteTxManager.lockMultiple(...)}}
method we calculate remaining time incorrectly (see line 1399):
long remainingTime = U.currentTimeMillis() - (tx.startTime() + tx.timeout());
In most cases this value will be below zero, and transactions will be rolled back right away
even with a long timeout. I'm attaching test that reproduces the issue ({{TxTest2.java}}).

> Prepare and finish future never time out
> ----------------------------------------
>                 Key: IGNITE-2797
>                 URL: https://issues.apache.org/jira/browse/IGNITE-2797
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>    Affects Versions: 1.5.0.final
>            Reporter: Valentin Kulichenko
>            Priority: Blocker
>              Labels: community, customer, important
>             Fix For: 1.6
> Even if transaction timeout is configured, transaction will not timeout if it's already
in prepare state. It will be shown in log as pending transaction and can cause the whole cluster
> We need to add a mechanism that will properly timeout prepare and (if possible) finish
> Also we can create an event that will be fired if there is a transaction pending for
a long time, showing which nodes we are waiting responses from. This will allow user to recover
by stopping only these nodes instead of restarting the whole cluster.

This message was sent by Atlassian JIRA

View raw message