Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-477

Possible scenario when GridDhtTxRemote is never finished if tx has only reads

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • None
    • sprint-3
    • cache
    • None

    Description

      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.

      Attachments

        Activity

          People

            agoncharuk Alexey Goncharuk
            sboikov Semen Boikov
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: