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)