Eric Shu created GEODE-9597:
-------------------------------
Summary: clientUpdateMessage and clientCq maps are cached in the
HAContainer key
Key: GEODE-9597
URL: https://issues.apache.org/jira/browse/GEODE-9597
Project: Geode
Issue Type: Bug
Components: client queues
Reporter: Eric Shu
In Geode, a client update message is put into a HAContainer, so that multiple
client queues can share the same message.
Currently, the update message and client cq map are cached in the
HAEventWrapper which is the key for the HAContainer.
{code:java}
public HAEventWrapper(ClientUpdateMessage event) {
this.regionName = event.getRegionName();
this.keyOfInterest = event.getKeyOfInterest();
this.shouldConflate = event.shouldBeConflated();
this.eventIdentifier = event.getEventId();
rcUpdater.set(this, 0);
putInProgressCountUpdater.set(this, 0);
this.clientUpdateMessage = event;
this.clientCqs = ((ClientUpdateMessageImpl) event).getClientCqs();
}
{code}
When HAContainer enables eviction, the value in the HAContainer can be faulted
out. However, the container key (HAEventWrapper) is never evicted, so the
client update message is being referenced by the HAEventWrapper and kept in
memory.
It does not save the memory as intended by enabling eviction. Need to refractor
the code to remove these.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)