You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Anilkumar Gingade (JIRA)" <ji...@apache.org> on 2018/09/12 19:01:00 UTC

[jira] [Updated] (GEODE-5733) Region size could be wrong when there is failure during GII

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

Anilkumar Gingade updated GEODE-5733:
-------------------------------------
    Affects Version/s: 1.0.0-incubating

> Region size could be wrong when there is failure during GII
> -----------------------------------------------------------
>
>                 Key: GEODE-5733
>                 URL: https://issues.apache.org/jira/browse/GEODE-5733
>             Project: Geode
>          Issue Type: Improvement
>          Components: regions
>    Affects Versions: 1.0.0-incubating
>            Reporter: Anilkumar Gingade
>            Priority: Major
>
> The region size is calculated using size of underlying map and tombstone count:
> size = map.size() - tombstone.
> The increment and decrement op on map and tombstone (creation) are non-atomic; which could result in region size reporting incorrectly.
> One of the scenario:
> -- Thread-1 is creating region; it sends region profile starts sends initial image request.
> -- Meanwhile Thread-2 does a destroy (replicated message); its not yet incremented the Tombstone count.
> -- Thread-1 fails to do GII; as a result of this. It clears the entries from the region.
> -- Now Thread-2 increments the tombstone count. Which corrupts the state.
> The probable fix could be to make the “getSizeGuard()” on local region used by size() and clear() to use read-write lock. The tombstone creation uses read lock; clear() and size() will use write lock.
>  



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