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

Transaction recovery works incorrectly with cache store and writeThrough enabled

Agile BoardAttach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.7
    • 2.1
    • cache
    • None

    Description

      Transaction (at least optimistic) recovery on backups works incorrectly when cache store and writeThrough enabled. Changes aren't propagated to DB (it's correct) but propagated to cache if primary node left topology.

      It happens because IgniteTxRemoteStateAdapter.storeUsed() method always returns false. As result incorrect code branch executes in NodeFailureTimeoutObject.onTimeout0() method (salvageTx() method should be invoked).

      Steps to reproduce:

      • Start two nodes A and B with cache. Cache store and writeThrough are anbled.
      • From node A start optimistic transaction which executes put/update operation for key. Node A should be primary for this key.
      • Kill node A when CacheStore.sessionEnd() method is invoked but changes are not propagated to underlying database (before commit on connection).
      • DB doesn't contain changes but node B contains it.

      Expected behaviour:

      All changes should be rolled back.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            agura Andrey N. Gura
            agura Andrey N. Gura
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment