[
https://issues.apache.org/jira/browse/GEODE-5733?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Anilkumar Gingade reassigned GEODE-5733:
----------------------------------------
Assignee: Anilkumar Gingade
> 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
> Assignee: 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)