[ https://issues.apache.org/jira/browse/GEODE-5733?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Anilkumar Gingade resolved GEODE-5733. -------------------------------------- Resolution: Fixed Fix Version/s: 1.8.0 Fixed as part of the bug fix: GEODE-5748 > 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 > Fix For: 1.8.0 > > > 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)