You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Mario Salazar de Torres (Jira)" <ji...@apache.org> on 2020/10/15 08:39:00 UTC
[jira] [Created] (GEODE-8614) Provide an specific client-side
exception for server LowMemoryException
Mario Salazar de Torres created GEODE-8614:
----------------------------------------------
Summary: Provide an specific client-side exception for server LowMemoryException
Key: GEODE-8614
URL: https://issues.apache.org/jira/browse/GEODE-8614
Project: Geode
Issue Type: Improvement
Components: native client
Affects Versions: 1.13.0, 1.12.0, 1.11.0
Reporter: Mario Salazar de Torres
*AS AN* native client contributor
*I WANT* to have a client-side exception for LowMemoryException
*SO THAT* I can nofity accordingly from the client-side upon server memory-depletion.
---
*Additional information*
This is the callstack of the LowMemoryException:
{noformat}
[error 2020/10/13 09:54:14.401405 UTC 140522117220352] Region::put: An exception (org.apache.geode.cache.LowMemoryException: PartitionedRegion: /part_a cannot process operation on key foo|0 because members [192.168.240.14(dms-server-1:1)<v2>:41000] are running low on memory at org.apache.geode.internal.cache.partitioned.RegionAdvisor.checkIfBucketSick(RegionAdvisor.java:482) at org.apache.geode.internal.cache.PartitionedRegion.checkIfAboveThreshold(PartitionedRegion.java:2278) at org.apache.geode.internal.cache.PartitionedRegion.putInBucket(PartitionedRegion.java:2982) at org.apache.geode.internal.cache.PartitionedRegion.virtualPut(PartitionedRegion.java:2212) at org.apache.geode.internal.cache.LocalRegionDataView.putEntry(LocalRegionDataView.java:170) at org.apache.geode.internal.cache.LocalRegion.basicUpdate(LocalRegion.java:5573) at org.apache.geode.internal.cache.LocalRegion.basicUpdate(LocalRegion.java:5533) at org.apache.geode.internal.cache.LocalRegion.basicBridgePut(LocalRegion.java:5212) at org.apache.geode.internal.cache.tier.sockets.command.Put65.cmdExecute(Put65.java:411) at org.apache.geode.internal.cache.tier.sockets.BaseCommand.execute(BaseCommand.java:183) at org.apache.geode.internal.cache.tier.sockets.ServerConnection.doNormalMessage(ServerConnection.java:848) at org.apache.geode.internal.cache.tier.sockets.OriginalServerConnection.doOneMessage(OriginalServerConnection.java:72) at org.apache.geode.internal.cache.tier.sockets.ServerConnection.run(ServerConnection.java:1212) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.lambda$initializeServerConnectionThreadPool$3(AcceptorImpl.java:676) at org.apache.geode.logging.internal.executors.LoggingThreadFactory.lambda$newThread$0(LoggingThreadFactory.java:119) at java.base/java.lang.Thread.run(Thread.java:834) ) happened at remote server.
{noformat}
Idea would be to modify *ThinClientRegion::handleServerException* in order to return a new error and later on, map it to a new created exception
*Suggestions*
The new exception could be called:
* CacheServerLowMemoryException
* ...
--
This message was sent by Atlassian Jira
(v8.3.4#803005)