[ https://issues.apache.org/jira/browse/GEODE-5653?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated GEODE-5653: ---------------------------------- Labels: pull-request-available (was: ) > Race between put of parallel WAN sender event and distributed clear causes > off-heap orphan > ------------------------------------------------------------------------------------------ > > Key: GEODE-5653 > URL: https://issues.apache.org/jira/browse/GEODE-5653 > Project: Geode > Issue Type: Bug > Components: offheap, regions, wan > Reporter: Ryan McMahon > Priority: Major > Labels: pull-request-available > > A race resulting in an off-heap orphan can occur with Parallel WAN when > off-heap is enabled on the cache and user's data region. It is the result of > the put occurring in two distinct steps without proper synchronization. The > initial value of the region entry is Token.REMOVED_PHASE_1 (step 1) then > later is replaced with actual GatewaySenderEvent (step 2). If a distributed > clear is processed between these two steps, it can result in an orphan. More > details on the race are described below. > The race is between: > *Thread 1*. A put of a {{GatewaySenderEvent}} containing an off-heap value to > one of the WAN "shadow" region's {{BucketRegionQueue}} > and > *Thread 2*. A distributed clear on the {{BucketRegionQueue}} containing that > value > The race occurs as follows: > *Thread 1 (Put)*: Put results in a new region entry where the value is > {{Token.REMOVED_PHASE1}} and put it into the {{CustomEntryConcurrentHashMap}} > owned by the {{AbstractRegionMap}}. > *Thread 2 (Clear)*: Iterates through bucket region's segments and clears the > entries. At this time the value is still {{Token.REMOVED_PHASE_1}}. > *Thread 1 (Put)*: The {{Token.REMOVED_PHASE_1}} is replaced with the actual > {{GatewaySenderEvent}} in the region entry. However, the entry was removed > via the clear above. When the entry is removed from the region, its off-heap > is orphaned because it is no longer in the {{CustomEntryConcurrentHashMap}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005)