You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Andrey Gura (JIRA)" <ji...@apache.org> on 2017/05/23 13:43:04 UTC

[jira] [Created] (IGNITE-5283) Transaction recovery works incorrectly with cache store and writeThrough enabled

Andrey Gura created IGNITE-5283:
-----------------------------------

             Summary: Transaction recovery works incorrectly with cache store and writeThrough enabled
                 Key: IGNITE-5283
                 URL: https://issues.apache.org/jira/browse/IGNITE-5283
             Project: Ignite
          Issue Type: Bug
          Components: cache
    Affects Versions: 1.7
            Reporter: Andrey Gura


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.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)