You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Semen Boikov (JIRA)" <ji...@apache.org> on 2015/03/12 15:02:38 UTC

[jira] [Created] (IGNITE-477) Possible scenario when GridDhtTxRemote is never finished if tx has only reads

Semen Boikov created IGNITE-477:
-----------------------------------

             Summary: Possible scenario when GridDhtTxRemote is never finished if tx has only reads
                 Key: IGNITE-477
                 URL: https://issues.apache.org/jira/browse/IGNITE-477
             Project: Ignite
          Issue Type: Bug
          Components: cache
            Reporter: Semen Boikov
            Assignee: Alexey Goncharuk
            Priority: Critical
             Fix For: sprint-2


Found following issue when GridDhtTxRemote is never finished:
- start explicit PESSIMISTIC, REPEATABLE_READ transaction
- in transaction just execute cache.get(key) and commit
- there are two nodes, node1, node2. Tx is started on node1, node2 is just started, it is new primary for key but preloading is not finished
- during 'get' handling node2 sends GridDhtLockRequest to node1 with single key (lines 830-836) in GridDhtLockFuture
- node1 starts GridDhtTxRemote
- when tx is committed GridDhtTxPrepareFuture on node2 does not send GridDhtTxPrepareRequest if tx has only write entries (see GridDhtTxPrepareFuture.prepare0). As result GridDhtTxRemote created on node1 is never finished (and partitionReleaseFuture also will never finish).

Added simple test reproducing issue: IgniteCacheTxPreloadNoWriteTest.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)