You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/10/19 15:46:00 UTC

[jira] [Commented] (IGNITE-9944) MVCC TX: GridDhtTxAbstractEnlistFuture near nodes update race.

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

ASF GitHub Bot commented on IGNITE-9944:
----------------------------------------

GitHub user pavlukhin opened a pull request:

    https://github.com/apache/ignite/pull/5040

    IGNITE-9944: GridDhtTxAbstractEnlistFuture near nodes update race

    

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/gridgain/apache-ignite ignite-9944

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/ignite/pull/5040.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #5040
    
----
commit 72be72b18b8ab9c791ef06ad811e16cfd15cd55e
Author: ipavlukhin <vo...@...>
Date:   2018-10-19T15:42:14Z

    fix problem when first enlist request is not sent to near node with MOVING backup partition

----


> MVCC TX: GridDhtTxAbstractEnlistFuture near nodes update race.
> --------------------------------------------------------------
>
>                 Key: IGNITE-9944
>                 URL: https://issues.apache.org/jira/browse/IGNITE-9944
>             Project: Ignite
>          Issue Type: Bug
>          Components: mvcc
>            Reporter: Roman Kondakov
>            Assignee: Ivan Pavlukhin
>            Priority: Major
>             Fix For: 2.7
>
>
> When {{GridDhtTxAbstractEnlistFuture#skipNearNodeUpdates}} is set to true it can cause failure on backup node during rebalancing. Possible scenario:
> # First entry is enlisted before rabalance was started and therefore it's backup node is added to {{GridDhtTxLocalAdapter#addLockTransactionNode}} in {{GridDhtTxAbstractEnlistFuture#addToBatch}} method. Note: in this case remote tx is not started on remote note.
> # Next entry could be processed when rebalance is already started and therefore this optimization will be skipped. In this case updated entry will be sent to backup node as usual in DhtEnlistRequest. 
> # But instead of sending {{GridDhtTxQueryFirstEnlistRequest}}, the {{GridDhtTxQueryEnlistRequest}} will be sent because near node has already been added to tx lock nodes list.
> # When this request arrives in {{GridDhtTransactionalCacheAdapter#processDhtTxQueryEnlistRequest}}, the "Can not find a transaction" exception will be thrown.
> Possible solution: we need to send {{GridDhtTxQueryFirstEnlistRequest}} in these cases.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)