[ 
https://issues.apache.org/jira/browse/GEODE-10158?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17514832#comment-17514832
 ] 

ASF subversion and git services commented on GEODE-10158:
---------------------------------------------------------

Commit a887842575ee8d605bdb14c58b5713edbc05cf8d in geode's branch 
refs/heads/develop from Darrel Schneider
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=a887842 ]

GEODE-10158: fix critical-offheap-threshold interaction with QueryMonitor 
(#7483)

* Removed setQueryMonitorRequiredForResourceManager from InternalCache.
Now when we are considering creating a QueryMonitor, the cache will
ask the resource manager for its critical heap percentage. If it is 0
then it the resource manager does not need a QueryMonitor for low mem 
monitoring.
Also optimized MemoryMonitor.getThresholds to not make a copy of the result
since MemoryThresholds is immutable.

* added unit test coverage for changes to getQueryMonitor
also cleaned up old warnings in GemFireCacheImplTest

* added unit test that proves getQueryMonitor now ignores the critical offheap 
setting

> offheap can incorrectly disable or enable the query monitor 
> ------------------------------------------------------------
>
>                 Key: GEODE-10158
>                 URL: https://issues.apache.org/jira/browse/GEODE-10158
>             Project: Geode
>          Issue Type: Bug
>          Components: offheap, querying
>            Reporter: Darrel Schneider
>            Assignee: Darrel Schneider
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.15.0
>
>
> Geode has a QueryMonitor that should be disabled if the resource manager's 
> critical-heap-threshold is 0 and enabled if it is > 0.
> But critical-offheap-threshold tries to also disable and enable the 
> QueryMonitor. I think this is wrong since queries do not consume off-heap 
> memory. QueryMonitor's relationship with the ResourceManager should only care 
> about the critical-heap-threshold. The biggest risk is that this bug could 
> cause the QueryMonitor to be disabled even though critical-heap-threshold is 
> > 0. This would allow queries to consume heap memory when instead they should 
> have failed with a LowMemoryException.
> To workaround this issue make sure that if you are using offheap that you 
> either leave both critical thresholds set to 0 or set both of them to a 
> non-zero value. 
> A simple fix for this exists. Delete this one line from OffHeapMemoryMonitor:
>       cache.setQueryMonitorRequiredForResourceManager(criticalThreshold != 0);
> A better fix would be to remove the 
> InternalCache.setQueryMonitorRequiredForResourceManager method and instead 
> have GemFireCacheImpl.getQueryMonitor method ask it's InternalResourceManager 
> if it requires a QueryMonitor. 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to