You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Dan Smith (JIRA)" <ji...@apache.org> on 2018/03/02 17:59:00 UTC

[jira] [Commented] (GEODE-4748) Geode put may result in inconsistent cache if network problem occurs or serialization of key or value class fails

    [ https://issues.apache.org/jira/browse/GEODE-4748?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16383889#comment-16383889 ] 

Dan Smith commented on GEODE-4748:
----------------------------------

Does the "Tamper" checkbox do what I think it does - modify the data that is being transmitted? Geode is relying on the error correction being done at the lower levels of the networking stack. If you want to protect against _malicious_ operators on your network corrupting packets I would suggest enabling ssl between peers - that would detect tampering with packets being sent. See https://geode.apache.org/docs/guide/latest/managing/security/implementing_ssl.html.

> Geode put may result in inconsistent cache if network problem occurs or serialization of key or value class fails
> -----------------------------------------------------------------------------------------------------------------
>
>                 Key: GEODE-4748
>                 URL: https://issues.apache.org/jira/browse/GEODE-4748
>             Project: Geode
>          Issue Type: Bug
>          Components: membership, regions
>    Affects Versions: 1.0.0-incubating, 1.1.0, 1.1.1, 1.2.0, 1.3.0, 1.2.1, 1.4.0
>            Reporter: Vadim Lotarev
>            Assignee: Kirk Lund
>            Priority: Critical
>         Attachments: clumsy.jpg, geode-4748.log
>
>
> Geode cache became inconsistent in case if networking and serialization problems occur at commit time. How to reproduce:
> # create any simple _replicated_ region
> # run two nodes
> # put some value in the region (within a transaction or not)
> # execute query on both nodes to check that the same value is returned (I used JMX for that)
> # emulate somehow temporary networking or serialization error (throw IOException from toData() or use [clumsy|https://jagt.github.io/clumsy/] to emulate network interruption)
> # repeat [#3], exception should occur
> # repeat [#4] - you should see different values on different nodes
> It looks like errors occurred after {{TXState.applyChanges}} produce inconsistency - it is impossible to rollback applied local changes what leads to the state where local cache contains  changed data but other node(s) old data (before changes made in transaction).
> To me, consistency is a key property for the systems like Geode so I would consider this bug as a critical one.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)