You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Dmitry Sherstobitov (Jira)" <ji...@apache.org> on 2021/08/17 17:26:00 UTC

[jira] [Closed] (IGNITE-15317) Cache.put/get Jepsen Elle test failed for Java Thin Client

     [ https://issues.apache.org/jira/browse/IGNITE-15317?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dmitry Sherstobitov closed IGNITE-15317.
----------------------------------------
    Ignite Flags:   (was: Docs Required,Release Notes Required)

> Cache.put/get Jepsen Elle test failed for Java Thin Client
> ----------------------------------------------------------
>
>                 Key: IGNITE-15317
>                 URL: https://issues.apache.org/jira/browse/IGNITE-15317
>             Project: Ignite
>          Issue Type: Bug
>          Components: thin client
>    Affects Versions: 2.10
>            Reporter: Dmitry Sherstobitov
>            Priority: Critical
>
> I've created simple jepsen elle test with for basic functionality cache.get/put. There is 2 versions of clients: one for thick client and other for thin client. Invoke code is exactly the same.
> Test passed for thick client and failed for thin client. Note that this issue is reproducible even with noop nemesis algorithm. 
> {code:java}
> (reduce
>                   (fn [txn' [f k v :as micro-op]]
>                     (case f
>                       :r (let [value (read-value cache k)]
>                            (conj txn' [f k value]))
>                       :w (do
>                            (let [contain-key (.containsKey cache k)
>                                  value       (read-value cache k)]
>                              (if (or (not contain-key) (and contain-key (< value v)))
>                                (.put cache k v)
>                                (vreset! tx-state false))) ; bye functional programming, we are saving state here to fail tx later
>                            (conj txn' micro-op))))
> {code}
> GitHub repo with jepsen code: https://github.com/qvad/jepsen (see ignite folder there, there is also small guide how to launch hyper-v VM and run test there)
> Elle reports following anomalies (:anomaly-types (:G1a :G1b :internal)), which is aborted reads and intermediate reads.
> Anomalies description: https://sitano.github.io/theory/databases/2019/07/30/tx-isolation-anomalies/



--
This message was sent by Atlassian Jira
(v8.3.4#803005)