book
Article ID: 294183
calendar_today
Updated On:
Issue/Introduction
Symptoms:
When trying to destroy region entries within a transaction on a region which has eviction configured, those entries are not actually destroyed until the eviction action for them is triggered. In particular, if the eviction action is not triggered because the condition is never met, those region entries will not ever be destroyed giving the appearance of a "memory leak."
Cause
According to the report (GEODE-4651), when destroying region entries from a region, which has eviction configured within a transaction, the transaction code adds the destroyed entries back to the eviction list. This can cause the entries not to be garbage collected until eviction action for them is triggered.
Resolution
The issue has been fixed and the fix is available with the latest major/minor releases of GemFire (8.2.9+, 9.3.1+, and 9.4.0 or later). For earlier versions, the possible workarounds are:
- To mitigate memory pressure, consider triggering eviction actions more frequently;
- Destroy region entries outside of transaction; or
- Do not configure eviction where you intend to destroy region entries within transactions.