[ https://issues.apache.org/jira/browse/GEODE-8614?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17241053#comment-17241053 ]
ASF subversion and git services commented on GEODE-8614: -------------------------------------------------------- Commit b74f474becb328d24cd998c8480756c079d9e7d7 in geode-native's branch refs/heads/develop from Mario Salazar de Torres [ https://gitbox.apache.org/repos/asf?p=geode-native.git;h=b74f474 ] GEODE-8614: Add LowMemoryException exceptions (#688) - Refactored Excepion types so: * Free-functions are now in an anonymous namespace. * Error map is not initialized each time GfErrTypeThrowException is called. * Error map is not an static global variable, rather than an static variable the scope of a free-function. - Replaced exception construction style by C++11 one. - Added a new LowMemoryException to be thrown in the client whenever one of the servers throw such exception. - Added an integration test which verifies that whenever the critical-heap-percentage percentage is reached, a LowMemoryException is thrown in the client. - Added UT to verify error to exception translation. - Added query-equivalent to LowMemoryException, so whenever a query is executed and the server is running low on memory, a QueryExecutionLowMemoryException is thrown in the client. > 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.11.0, 1.12.0, 1.13.0 > Reporter: Mario Salazar de Torres > Priority: Major > Labels: pull-request-available > > *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)